Necesito ayuda en Visual Basic, cuando el campo esta vacío me da un error en tiempo de ejecución

Hola experto serias tan amable
Cuando el campo esta vacío me da un error en tiempo de ejecución en este método:
Dim VarBD As Database
Set VarBD = DBEngine.Workspaces(0).OpenDatabase("c:\windows\escritorio\db2.mdb")
Dim RsetTabla As Recordset
Set RsetTabla = VarBD.OpenRecordset("MiTabla", dbOpenDynaset)
With RsetTabla
TextBox1.TEXT = .Fields("DNI")
END WITH
¿Me podrías decir el código para el tratamiento de este error?
Sin más gracias.

1 Respuesta

Respuesta
1
En la linea:
TextBox1.TEXT = .Fields("DNI")
Colocala de esta manera :
TextBox1.TEXT = "" & .Fields("DNI")
Saludos
Roberto Alvarado
Cartagena Colombia
Podrías revisarlo de nuevo por favor
Obviamente el valor del campo es vacío por que inicio el formulario.
Mira mi proyecto es que al ingresar un dato a un textbox, este almacene este dato ejemplo al abrir el program colocar mi edad, y al cerrar este conserve este dato, y al volverlo a abrir no tenga que volver a escribirlo. Me explique
Private Sub UserForm_Initialize()
Dim VarBD As Database
Set VarBD = DBEngine.Workspaces(0).OpenDatabase("c:\windows\escritorio\db2.mdb")
Dim RsetTabla As Recordset
Set RsetTabla = VarBD.OpenRecordset("MiTabla", dbOpenDynaset)
With RsetTabla
TextBox1.TEXT = "" & .Fields("DNI")
If TextBox1.TEXT = IsNull(.Fields("DNI")) Then
TextBox1.TEXT = Null
End If
End With
Ahora me perdí... ¿Cuál es el mensaje de error exactamente que aparece?
En la rutina de arriba lo que haces es leer la tabla y colocar el valor del campo DNI en el TEXTBOX1.TEXT
La pregunta:
If TextBox1.TEXT = IsNull(.Fields("DNI")) Then
TextBox1.TEXT = Null
End If
Nunca va a ser verdadera porque al TEXTBOX1.TEXT le estas asignando un caractyer nulo, para que no te de el error que se genera cuando le asignas un valor NULL a un TEXTBOX.
Si quieres grabar ese dato, entonces debes hacer lo siguiente:
RsetTabla.Fields("DNI") = TextBox1.Text
RsetTabla.Update
Este es el código utilizando ADO, tu estas utilizando DAO, que hace mucho tiempo MS ha dejado de lado. Así que no recuerdo si el código te sirva exactamente como esta aquí.
Saludos
Roberto Alvarado
Caratgena - Colombia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas