Visual Basic - Error variable Recordset de ADO

Life is soft - evento anual de software empresarial
 
Vista:

Error variable Recordset de ADO

Publicado por carlos ingnacio (99 intervenciones) el 20/09/2004 18:46:45
hola que tal,

Tengo una duda y creo que es debido al tipo de variable...

Yo tengo una codificacion DAO algo como esto:
If Rs.EOF Then
Rs.AddNew
Rs("Campo1")=Text1.Text
Rs("Campo2")=Text2.Text
Rs.Update
Exit Sub
End If

Pero al hacer esto mismo en un programa bajo codigo ADO me da error al leer la linea de If
Indicando de que la variable no esta declarada o que no se permite y que se cerrara, es decir, en resumen, da el error y no lee como en la variable recordset DAO

Entonces pregunto: ¿Es que la variable Recordset ADO hay que declararle esto de otra forma? a diferencia de la de DAO que si lo acpeta.

Muchisimas gracias por tu ayuda
Atte. carlos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error variable Recordset de ADO

Publicado por miguel (1042 intervenciones) el 20/09/2004 20:56:56
Para que trabajes con ADO es necesario declarar la referencia:
Microsoft Active Data Objects 2.7 Library
y te paso un ejemplo de como te conectarias y hacer una consulta:
Dim Rec As ADODB.Recordset
Dim sql As String
Dim cnbase As ADODB.Connection
Private Sub Form_Load()
Conectar
LlenaListBox
End Sub
Sub Conectar()
On Error GoTo Errores
Dim Ruta As String
Dim NomBase As String
NomBase = "BD.mdb" 'Nombre de la BD de ACCESS
Ruta = App.Path & "\" & NomBase 'Direccion donde se encuentra tu BD de ACCESS
Conexion = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & Ruta & ""
Set cnbase = New ADODB.Connection
cnbase.ConnectionString = Conexion
cnbase.Open Conexion
Set Rec = New ADODB.Recordset
Errores:
If Err.Number <> 0 Then Errores
End Sub
Sub Errores()
Msg = "Error Ocasionado Por:" + Chr(13) + Err.Description
MsgBox Msg, vbCritical, "Error" + Str(Err.Number)
Err.Clear
End Sub

Sub Registro()
If Rec.State = adStateOpen Then Rec.Close
Rec.CursorLocation = adUseClient
Rec.CursorType = adOpenDynamic
Rec.LockType = adLockOptimistic
End Sub
Sub LlenaListBox()
List1.Clear
List1.Visible = True
sql = "Select DNI,Nombre From T_Datos_Empleados Order By Nombre"
Registro
Rec.Open sql, cnbase
For i = 1 To Rec.RecordCount
List1.AddItem Rec!Nombre
Rec.MoveNext
Next i
End Sub

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error variable Recordset de ADO..Guardar

Publicado por miguel (1042 intervenciones) el 20/09/2004 21:00:09
Para Guardar te quedaría igual:
If Rec.EOF Then
Rec.AddNew
Rec("Campo1")=Text1.Text
Rec("Campo2")=Text2.Text
Rec.Update
Exit Sub
End If
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error variable Recordset de ADO..Guardar

Publicado por carlos ignacio (99 intervenciones) el 20/09/2004 21:23:16
uhmmm ok, si voy a usar el codigo que me indicas amigo, yo ya estoy referenciado a la libreria de ADO que indicas y ya estoy conectado a la BD pero para evitar que el codigo de error cuando la BD esté vacia, por eso indiclo lo de la sentencia IF. Si no hay nada en la BD hacer un registro ficticio que luego se podra borrar al meter más registros. Ese codigo del IF está en una rutinia llamada Sub AutoRegistro.

Dale, voy a revisar el codigo y cualquier cosa posteo
gracias amigo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar