Programación General > Bases de Datos

 Error "94" en tiempo de ejecucion: Uso no valido de Null

(1/1)

Zakyo:
Hola a todos, estoy siguiendo un manual de vb 6.0 para aprender a usar bases de datos, en uno de los ejercicios me solicitan que en un formulario coloque:

5 Etiquetas
5 TextBox
7 Botones(Primero, Anterior, Siguiente, Ultimo, Actualizar, Agregar y Salir)

El objetivo del ejercicio es lograr movernos agilmente en un base de datos, ya sea agregando actualizando o leyendo registros. El problema comienza en el boton "Agregar" Pues al ejecutar el programa me sale este error "Error "94" en tiempo de ejecucion: Uso no valido de Null". Mi codigo es el siguiente:


--- Código: Visual Basic ---Dim cn As New ADODB.Connection                 'Creamos el objeto Connection.Private WithEvents rs As ADODB.Recordset    'Creamos el Recordset con soporte de eventos. Private Sub Command1_Click()'Movemos al primer registro del Recordset.rs.MoveFirst End Sub Private Sub Command2_Click()'Verificamos si no estamos antes del principio del Recordset.If rs.BOF = False Then    rs.MovePrevious  'Movemos al registro anterior.End If End Sub Private Sub Command3_Click()'Verificamos si no estamos después del último elemento del Recordset.If rs.EOF = False Then    rs.MoveNext 'Movemos al siguiente registro.End If End Sub Private Sub Command4_Click()'Movemos al último registro del Recordset.rs.MoveLast End Sub Private Sub Command5_Click() rs.Close    'Cerramos el Recordset.cn.Close    'Cerramos la conexión. 'Salimos de la aplicación.End End Sub Private Sub Command6_Click()rs.Update Array("nombre", "apellido", "telefono", "direccion", "correo"), _          Array(Text1.Text, Text2.Text, Text3.Text, Text4.Text, Text5.Text) rs.Update  'Actualizamos el registro. 'Verificamos si no ocurrió ningún problema.If rs.State = 1 Or rs.State = 0 ThenMsgBox ("El registro se ha actualizado con éxito.")ElseMsgBox ("Ha ocurrido un error al actualizar el registro.")End If End Sub        Private Sub Command7_Click() rs.AddNewrs("nombre") = Text1.Textrs("apellido") = Text2.Textrs("telefono") = Text3.Textrs("direccion") = Text4.Textrs("correo") = Text5.Textrs.Update     End Sub Private Sub Form_Load()Set rs = New ADODB.Recordset    'Activamos el Recordset. 'Abrimos la base de datos "agenda.mdb"cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=C:UsersRafaelDocumentsAccessagenda.mdb" 'Especificamos la fuente de datos. En este caso la tabla "contactos".rs.Source = "contactos"rs.CursorType = adOpenKeyset        'Definimos el tipo de cursor.rs.LockType = adLockOptimistic        'Definimos el tipo de bloqueo. 'Abrimos el Recordset y lo llenamos con una consulta SQL.rs.Open "select * from contactos", cn rs.MoveFirst    'Nos movemos al principio del Recordset. 'Cargamos los datos en las cajas de texto.Text1.Text = rs.Fields("Nombre")     'Ponemos el nombre del registro actual.Text2.Text = rs.Fields("Apellido")     'Ponemos el apellido del registro actual.Text3.Text = rs.Fields("Telefono")    'Ponemos el teléfono del registro actual.Text4.Text = rs.Fields("Direccion")   'Ponemos la dirección del registro actual.Text5.Text = rs.Fields("Correo")       'Ponemos el correo del registro actual.   End SubPrivate Sub rs_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset) 'Si estamos antes del principio del Recordset.If rs.BOF = True Then    rs.MoveFirst    'Movemos al principio del Recordset.    'Si estamos después del ultimo elemento del Recordset.ElseIf rs.EOF = True Then    rs.MoveLast     'Movemos al final del Recordset.Else'Si se cambio del registro actual del Recordset a otro.Text1.Text = rs.Fields("Nombre")    'Ponemos el nombre del registro actual.Text2.Text = rs.Fields("Apellido")   'Ponemos el apellido del registro actual.Text3.Text = rs.Fields("Telefono")  'Ponemos el teléfono del registro actual.Text4.Text = rs.Fields("Direccion") 'Ponemos la dirección del registro actual.Text5.Text = rs.Fields("Correo")    'Ponemos el correo del registro actual.End If End Sub 

Text1.Text = rs.Fields("Nombre")    'Ponemos el nombre del registro actual.   <<< Esta es la linea que me marca vb cuando depuro el error. Espero puedan ayudarme gracias de antemano.

ksc_:
modifica esto al codigo


        Text1.Text = rs.Fields("Nombre") & ""
        Text2.Text = rs.Fields("Apellido") & ""
        Text3.Text = rs.Fields("Telefono") & ""
        Text4.Text = rs.Fields("Direccion") & ""
        Text5.Text = rs.Fields("Correo") & ""


se le agrega el signo de and en ingles (creo que no se ve bien con este codigo) y dos comillas.

saludos.

diego del cid:

buen dia tengo un error 94 uso no valido de null
tengo dos option button un texbox dos comand button y un mshflexgrid
el primer option es detalle y el otro es juego
tengo un comand buscar y catalogo
y el textbox se llama txtbusca

se supone que si presiono cualquiera de los dos option y le doy en mi boton catalogo
tendira que aparecer mi tabla que yo seleccione,ya que antes habia enlazado una base de datos
y me da ese error
despues con los  option presiono cualquiera de los dos  , en  el txtbusca pongo un codigo que este en la tabla que yo seleccione
le doy en el boton buscar y tendria que aparecer la tabla selecionada con solo el codigo que yo ingrese en el texbox pero me da ese error de nuevo
este es el codigo
Private Sub catalogo_Click()
txtbusca.Text = ""
If Option1 = True Then
Call detalle
ElseIf Option2 = True Then
Call juego
End If
End Sub
Public Sub numero()
Dim n As Integer
For n = 0 To 1
MSHFlexGrid1(n).Visible = False
Next n
End Sub
Private Sub buscar_Click()
Dim z As String
Dim GT As ADODB.Recordset
Call numero
If Option1 = True Then
MSHFlexGrid1(0).Visible = True
MSHFlexGrid1(0).FormatString = "^cod_juego|^nombre_juego|^descripcion_juego|^precio_unitario|^fecha_entrada|^fecha_salida"
z = " select *from detalle where cod_juego = (" & txtbusca.Text & ") "
Set GT = New ADODB.Recordset
Set GT = conexion.Execute(z)
MSHFlexGrid1(0).Rows = 1
While Not GT.EOF
   MSHFlexGrid1(0).AddItem (Str(GT!cod_juego) + vbTab + GT!nombre_juego + vbTab + GT!descripcion_juego + vbTab + Str(GT!precio_unitario) + vbTab + Str(GT!fecha_entrada) + vbTab + Str(GT!fecha_salida))
   GT.MoveNext
Wend
ElseIf Option2 = True Then
MSHFlexGrid1(1).Visible = True
MSHFlexGrid1(1).FormatString = "^cod_juego|^fecha_entrada|^fecha_salida|^precio|^nombre_juego|^descripcion"
z = "select *from juego where cod_juego = (" & txtbusca.Text & ") "
Set GT = New ADODB.Recordset
Set GT = conexion.Execute(z)
MSHFlexGrid1(1).Rows = 1
While Not GT.EOF
    MSHFlexGrid1(1).AddItem (Str(GT!cod_juego) + vbTab + Str(GT!fecha_entrada) + vbTab + Str(GT!fecha_salida) + vbTab + Str(GT!precio) + vbTab + GT!nombre_juego + vbTab + GT!descripcion)
   GT.MoveNext
Wend
End If
End Sub

Private Sub Form_Load()
Call conecta
Label1.Caption = "ingrese codigo registro de la tabla a buscar"
End Sub
Public Sub juego()
Dim z As String
Dim GT As ADODB.Recordset
Call numero
MSHFlexGrid1(0).Visible = True
MSHFlexGrid1(0).FormatString = "^cod_juego|^fecha_entrada|^fecha_salida|^precio|^nombre_juego|^descripcion"
z = " select *from juego "
Set GT = New ADODB.Recordset
Set GT = conexion.Execute(z)
MSHFlexGrid1(0).Rows = 1
While Not GT.EOF
   MSHFlexGrid1(0).AddItem (Str(GT!cod_juego) + vbTab + Str(GT!fecha_entrada) + vbTab + Str(GT!fecha_salida) + vbTab + Str(GT!precio) + vbTab + GT!nombre_juego + vbTab + GT!descripcion)
   GT.MoveNext
Wend
End Sub
Public Sub detalle()
Dim z As String
Dim GT As ADODB.Recordset
Call numero
MSHFlexGrid1(1).Visible = True
MSHFlexGrid1(1).FormatString = "^cod_juego|^nombre_juego|^descripcion_juego|^precio_unitario|^fecha_entrada|^fecha_salida"

z = "select *from detalle"
Set GT = New ADODB.Recordset
Set GT = conexion.Execute(z)
MSHFlexGrid1(1).Rows = 1
While Not GT.EOF
   MSHFlexGrid1(1).AddItem (Str(GT!cod_juego) + vbTab + GT!nombre_juego + vbTab + GT!descripcion_juego + vbTab + Str(GT!precio_unitario) + vbTab + Str(GT!fecha_entrada) + vbTab + Str(GT!fecha_salida))
   GT.MoveNext
Wend
End Sub
ayudenme por favor

Navegación

[0] Índice de Mensajes

Ir a la versión completa