• Domingo 28 de Abril de 2024, 23:48

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Zakyo

Páginas: [1]
1
Bases de Datos / Error "94" en tiempo de ejecucion: Uso no valido de Null
« en: Miércoles 15 de Septiembre de 2010, 16:19 »
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
  1. Dim cn As New ADODB.Connection                 'Creamos el objeto Connection.
  2. Private WithEvents rs As ADODB.Recordset    'Creamos el Recordset con soporte de eventos.
  3.  
  4. Private Sub Command1_Click()
  5. 'Movemos al primer registro del Recordset.
  6. rs.MoveFirst
  7.  
  8. End Sub
  9.  
  10. Private Sub Command2_Click()
  11. 'Verificamos si no estamos antes del principio del Recordset.
  12. If rs.BOF = False Then
  13.     rs.MovePrevious  'Movemos al registro anterior.
  14. End If
  15.  
  16. End Sub
  17.  
  18. Private Sub Command3_Click()
  19. 'Verificamos si no estamos después del último elemento del Recordset.
  20. If rs.EOF = False Then
  21.     rs.MoveNext 'Movemos al siguiente registro.
  22. End If
  23.  
  24. End Sub
  25.  
  26. Private Sub Command4_Click()
  27. 'Movemos al último registro del Recordset.
  28. rs.MoveLast
  29.  
  30. End Sub
  31.  
  32. Private Sub Command5_Click()
  33.  
  34. rs.Close    'Cerramos el Recordset.
  35. cn.Close    'Cerramos la conexión.
  36.  
  37. 'Salimos de la aplicación.
  38. End
  39.  
  40. End Sub
  41.  
  42. Private Sub Command6_Click()
  43. rs.Update Array("nombre", "apellido", "telefono", "direccion", "correo"), _
  44.           Array(Text1.Text, Text2.Text, Text3.Text, Text4.Text, Text5.Text)
  45.  
  46. rs.Update  'Actualizamos el registro.
  47.  
  48. 'Verificamos si no ocurrió ningún problema.
  49. If rs.State = 1 Or rs.State = 0 Then
  50. MsgBox ("El registro se ha actualizado con éxito.")
  51. Else
  52. MsgBox ("Ha ocurrido un error al actualizar el registro.")
  53. End If
  54.  
  55. End Sub
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64. Private Sub Command7_Click()
  65.  
  66. rs.AddNew
  67. rs("nombre") = Text1.Text
  68. rs("apellido") = Text2.Text
  69. rs("telefono") = Text3.Text
  70. rs("direccion") = Text4.Text
  71. rs("correo") = Text5.Text
  72. rs.Update
  73.  
  74.  
  75.  
  76.  
  77.  
  78. End Sub
  79.  
  80. Private Sub Form_Load()
  81. Set rs = New ADODB.Recordset    'Activamos el Recordset.
  82.  
  83. 'Abrimos la base de datos "agenda.mdb"
  84. cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=C:UsersRafaelDocumentsAccessagenda.mdb"
  85.  
  86. 'Especificamos la fuente de datos. En este caso la tabla "contactos".
  87. rs.Source = "contactos"
  88. rs.CursorType = adOpenKeyset        'Definimos el tipo de cursor.
  89. rs.LockType = adLockOptimistic        'Definimos el tipo de bloqueo.
  90.  
  91. 'Abrimos el Recordset y lo llenamos con una consulta SQL.
  92. rs.Open "select * from contactos", cn
  93.  
  94. rs.MoveFirst    'Nos movemos al principio del Recordset.
  95.  
  96. 'Cargamos los datos en las cajas de texto.
  97. Text1.Text = rs.Fields("Nombre")     'Ponemos el nombre del registro actual.
  98. Text2.Text = rs.Fields("Apellido")     'Ponemos el apellido del registro actual.
  99. Text3.Text = rs.Fields("Telefono")    'Ponemos el teléfono del registro actual.
  100. Text4.Text = rs.Fields("Direccion")   'Ponemos la dirección del registro actual.
  101. Text5.Text = rs.Fields("Correo")       'Ponemos el correo del registro actual.
  102.  
  103.  
  104.  
  105. End Sub
  106. Private Sub rs_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
  107.  
  108. 'Si estamos antes del principio del Recordset.
  109. If rs.BOF = True Then
  110.     rs.MoveFirst    'Movemos al principio del Recordset.
  111.    
  112. 'Si estamos después del ultimo elemento del Recordset.
  113. ElseIf rs.EOF = True Then
  114.     rs.MoveLast     'Movemos al final del Recordset.
  115. Else
  116. 'Si se cambio del registro actual del Recordset a otro.
  117. Text1.Text = rs.Fields("Nombre")    'Ponemos el nombre del registro actual.
  118. Text2.Text = rs.Fields("Apellido")   'Ponemos el apellido del registro actual.
  119. Text3.Text = rs.Fields("Telefono")  'Ponemos el teléfono del registro actual.
  120. Text4.Text = rs.Fields("Direccion") 'Ponemos la dirección del registro actual.
  121. Text5.Text = rs.Fields("Correo")    'Ponemos el correo del registro actual.
  122. End If
  123.  
  124. End Sub
  125.  


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.

Páginas: [1]