** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - uso no valido de NULL error 94
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradouso no valido de NULL error 94

 Responder Responder
Autor
Mensaje
javifergavilan Ver desplegable
Nuevo
Nuevo


Unido: 25/Marzo/2020
Localización: España- Madrid
Estado: Sin conexión
Puntos: 22
Enlace directo a este mensaje Tema: uso no valido de NULL error 94
    Enviado: 25/Marzo/2020 a las 14:38
Ejecuto este código y me da error de 94 uso no valido de NULL , en Rojo pongo donde me da el Error...
¿ Como puedo solucionarlo ?


Private Sub Comando11_Click()
'borramos los datos de las tablas destino
borrar
Dim campo As Object
' creamos el objeto recorset con los datos de la tabla twptelefonicadestino
Dim rsttwptelefonica As DAO.Recordset
' creamos el objeto recorset con los datos de la tabla twpumedestino
Dim rsttwpume As DAO.Recordset
' creamos el objeto recorset con los datos de la tabla twptelefonicadestino
Dim rsttwptelefonicafiltrado As DAO.Recordset
' creamos el objeto recorset con los datos de la tabla twpumedestino
Dim rsttwpumefiltrado As DAO.Recordset
' creamos el objeto recorset con los datos de la tabla twptelefonicadestino
Dim rsttwptelefonicadestino As DAO.Recordset
' creamos el objeto recorset con los datos de la tabla twpumedestino
Dim rsttwpumedestino As DAO.Recordset
' consulta SQL
Dim strSQLtwptelefonica As String
' consulta SQL
Dim strSQLtwpume As String
' consulta SQL
Dim strSQLtwptelefonicafiltrado As String
' consulta SQL
Dim strSQLtwpumefiltrado As String
' consulta SQL
Dim strSQLtwptelefonicadestino As String
' consulta SQL
Dim strSQLtwpumedestino As String
' valores nombre del campo y valor del campo
Dim nombrecampo As String
Dim valorcampo As String
' creamos la consulta de los datos que queremos recuperar
strSQLtwptelefonica = "SELECT [Identificador], [Estado], [Número de serie], [Uso], [GFA nominal], [Última configuración] FROM TWPTELEFONICA"
' creamos la consulta de los datos que queremos recuperar
strSQLtwpume = "SELECT [Identificador], [Estado], [Número de serie], [Uso], [GFA nominal],[Última configuración] FROM TWP WHERE Estado = " & " '" & "En servicio" & "' "
'"SELECT * FROM ALTASBAJAS  WHERE Identificador = " & " '" & datos & "'" & " And id_alta = " & datos1 & ";"

' creamos la consulta de los datos que queremos recuperar
strSQLtwpumedestino = "SELECT * FROM TWPUMEDESTINO"
' creamos la consulta de los datos que queremos recuperar
strSQLtwptelefonicadestino = "SELECT * FROM TWPTELEFONICADESTINO"
' rellenamos el recorset con la consulta de sql de la tabla twptelefonica
Set rsttwptelefonica = CurrentDb.OpenRecordset(strSQLtwptelefonica)
' rellenamos el recorset con la consulta de sql de la tabla twptume
Set rsttwpume = CurrentDb.OpenRecordset(strSQLtwpume)
' rellenamos el recorset con la consulta de sql de la tabla twpumedestino
Set rsttwpumedestino = CurrentDb.OpenRecordset(strSQLtwpumedestino)
' rellenamos el recorset con la consulta de sql de la tabla twpumedestino
Set rsttwptelefonicadestino = CurrentDb.OpenRecordset(strSQLtwptelefonicadestino)
' borramos los registros antiguos de la tabla twptelefonicadestino
Do Until rsttwptelefonica.EOF
' creamos la consulta de los datos que queremos recuperar
strSQLtwpumefiltrado = "SELECT [Identificador], [Estado], [Número de serie], [Uso], [GFA nominal],[Última configuración] FROM TWP WHERE Identificador = " & " '" & rsttwptelefonica(0) & "'"
Set rsttwpumefiltrado = CurrentDb.OpenRecordset(strSQLtwpumefiltrado)
If rsttwpumefiltrado.EOF = True Then
''''''''''''''''''''''''''''''''''''''''''''''
'''' copiar a telefonica destino '''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''
rsttwptelefonicadestino.AddNew
For Each campo In rsttwptelefonica.Fields
' cambiamos los valores de un recorset a otro
nombrecampo = campo.Name
valorcampo = campo
rsttwptelefonicadestino(nombrecampo) = valorcampo
Next
rsttwptelefonicadestino.Update
''''''''''''''''''''''''''''''''''''''''''''''
'''''''' fin copiar telefonica destino '''''''
''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''
'''' editar ume destino '''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''
rsttwpumedestino.AddNew
rsttwpumedestino("Identificador") = rsttwptelefonica(0)
rsttwpumedestino("Estado") = "0"
rsttwpumedestino("Número de serie") = "0"
rsttwpumedestino("Uso") = "0"
rsttwpumedestino("GFA nominal") = "0"
rsttwpumedestino("Última configuración") = "01/01/1999"
rsttwpumedestino.Update
''''''''''''''''''''''''''''''''''''''''''''''
'''''''' fin editar ume destino '''''''
''''''''''''''''''''''''''''''''''''''''''''''
Else
    If rsttwpumefiltrado(1) = rsttwptelefonica(1) And rsttwpumefiltrado(2) = rsttwptelefonica(2) And rsttwpumefiltrado(3) = rsttwptelefonica(3) And rsttwpumefiltrado(4) = rsttwptelefonica(4) And rsttwpumefiltrado(5) = rsttwptelefonica(5) Then
    ' no hacer nada
    'MsgBox ("ok")
    ElseIf rsttwpumefiltrado(1) <> rsttwptelefonica(1) Or rsttwpumefiltrado(2) <> rsttwptelefonica(2) Or rsttwpumefiltrado(3) <> rsttwptelefonica(3) Or rsttwpumefiltrado(4) <> rsttwptelefonica(4) Or rsttwpumefiltrado(5) <> rsttwptelefonica(5) Then
    ''''''''''''''''''''''''''''''''''''''''''''''
    '''' copiar a telefonica destino '''''''''''''
    ''''''''''''''''''''''''''''''''''''''''''''''
    rsttwptelefonicadestino.AddNew
    For Each campo In rsttwptelefonica.Fields
    ' cambiamos los valores de un recorset a otro
    nombrecampo = campo.Name
    valorcampo = campo
    rsttwptelefonicadestino(nombrecampo) = valorcampo
    Next
    rsttwptelefonicadestino.Update
    ''''''''''''''''''''''''''''''''''''''''''''''
    '''''''' fin copiar telefonica destino '''''''
    ''''''''''''''''''''''''''''''''''''''''''''''
    ''''''''''''''''''''''''''''''''''''''''''''''
    '''' copiar ume destino '''''''''''''
    ''''''''''''''''''''''''''''''''''''''''''''''
    rsttwpumedestino.AddNew
    For Each campo In rsttwpumefiltrado.Fields
    ' cambiamos los valores de un recorset a otro
     nombrecampo = campo.Name
     valorcampo = campo
    rsttwpumedestino(nombrecampo) = valorcampo
    Next
    rsttwpumedestino.Update
    ''''''''''''''''''''''''''''''''''''''''''''''
    '''''''' fin copiar ume destino '''''''
    ''''''''''''''''''''''''''''''''''''''''''''''
    End If
End If
rsttwpumefiltrado.Close
Set rsttwpumefiltrado = Nothing
rsttwptelefonica.MoveNext
Loop
Do Until rsttwpume.EOF
' creamos la consulta de los datos que queremos recuperar
strSQLtwptelefonicafiltrado = "SELECT Identificador, Estado, [Número de serie], Uso, [GFA nominal],[Última configuración] FROM TWPTELEFONICA WHERE Identificador = " & " '" & rsttwpume(0) & "'"
Set rsttwptelefonicafiltrado = CurrentDb.OpenRecordset(strSQLtwptelefonicafiltrado)
If rsttwptelefonicafiltrado.EOF = True Then
''''''''''''''''''''''''''''''''''''''''''''''
'''' copiar a ume destino '''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''
rsttwpumedestino.AddNew
For Each campo In rsttwpume.Fields
' cambiamos los valores de un recorset a otro
nombrecampo = campo.Name
valorcampo = campo
rsttwpumedestino(nombrecampo) = valorcampo
Next
rsttwpumedestino.Update
''''''''''''''''''''''''''''''''''''''''''''''
'''''''' fin copiar ume destino '''''''
''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''
'''' editar telefonica destino '''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''
rsttwptelefonicadestino.AddNew
rsttwptelefonicadestino("Identificador") = rsttwpume(0)
rsttwptelefonicadestino("Estado") = "0"
rsttwptelefonicadestino("Número de serie") = "0"
rsttwptelefonicadestino("Uso") = "0"
rsttwptelefonicadestino("GFA nominal") = "0"
rsttwptelefonicadestino("Última configuración") = "01/01/1999"
rsttwptelefonicadestino.Update
''''''''''''''''''''''''''''''''''''''''''''''
'''''''' fin editar telefonica destino '''''''
''''''''''''''''''''''''''''''''''''''''''''''
End If
rsttwptelefonicafiltrado.Close
Set rsttwptelefonicafiltrado = Nothing
rsttwpume.MoveNext
Loop
rsttwptelefonica.Close
Set rsttwptelefonica = Nothing
rsttwpume.Close
Set rsttwpume = Nothing
rsttwptelefonicadestino.Close
Set rsttwptelefonicadestino = Nothing
rsttwpumedestino.Close
Set rsttwpumedestino = Nothing
Subformulario_TWPUMEDESTINO.Requery
Subformulario_TWPTELEFONICADESTINO.Requery

End Sub

Gracias
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: en línea
Puntos: 12511
Enlace directo a este mensaje Enviado: 25/Marzo/2020 a las 17:00
Hola,

¿Porque está este mensaje en Access y otros sistemas? ¿Cuál es el otro sistema?

Para la duda concreta, campo es un Field del recordset (definido como Object... pero ese es otro tema) mientras que valorcampo es un String. Lo que pretendes es traspasar el valor del campo a la variable valorcampo. Para ello debes utilizar la propiedad Value de campo

valorcampo = campo.Value

Ojo, ese error se da más de una vez.

Un saludo
Xavi, un minyó de Terrassa

Mi web
Arriba
javifergavilan Ver desplegable
Nuevo
Nuevo


Unido: 25/Marzo/2020
Localización: España- Madrid
Estado: Sin conexión
Puntos: 22
Enlace directo a este mensaje Enviado: 25/Marzo/2020 a las 17:05
Buenos dias:

Gracias por las respuesta, Si es Access ... Pongo lo que me dices pero sigue saliento el mismo error...

Un saludo.
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: en línea
Puntos: 12511
Enlace directo a este mensaje Enviado: 25/Marzo/2020 a las 17:19
Pues a lo mejor resulta que el campo tiene un valor nulo.

Prueba cambiando las 2 lineas por esta

rsttwptelefonicadestino(nombrecampo).value = rsttwptelefonica(nombrecampo).value

Y si sigue fallando, evalúa nulos y convierte al valor adecuado.

Un saludo

PD. te he movido el hilo al foro adecuado.

Xavi, un minyó de Terrassa

Mi web
Arriba
javifergavilan Ver desplegable
Nuevo
Nuevo


Unido: 25/Marzo/2020
Localización: España- Madrid
Estado: Sin conexión
Puntos: 22
Enlace directo a este mensaje Enviado: 25/Marzo/2020 a las 19:02
Buenas tardes:

Con eso solucionado !!!!! , Muchísimas gracias.

Un saludo.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable