Problemas con Openrecordset |
Responder |
Autor | |
simonpru
Habitual Unido: 24/Febrero/2009 Localización: España Estado: Sin conexión Puntos: 194 |
Tema: Problemas con Openrecordset Enviado: 20/Noviembre/2020 a las 17:00 |
Buenas
Tengo un form que muestra todos los registros de una tabla, tengo habilitado un boton de comando para que cuando yo esté posicionado en la fila eliminar ese registro, pero no se que pasa que el codigo me tirar error siempre al intentar abrir la tabla. El campo de búsqueda es númerico. este es CODE Dim delete As Variant Dim TABLA As DAO.Recordset delete = Me.VARNUM Set TABLA = CurrentDb.OpenRecordset("SELECT * FROM BLACKFACT WHERE NUMERO =") & delete MsgBox TABLA1.RecordCount TABLA1.Close Set TABLA1 = Nothing siempre me tira el error no coinciden los tipos. Muchas gracias. |
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14025 |
Enviado: 20/Noviembre/2020 a las 17:14 |
Hola simonpru,
lo que has posteado es un hermoso batiburrillo .... - dices que el campo búsqueda es numérico ... ¿se llama CODE? ¿por qué le asignas VARNUM? - defines una variable para asignarle el valor de búsqueda como Variant, tendrías que hacerlo como numérica, del mismo tipo que el campo de la tabla con el que la vas a comparar, supongo que será Long, a poco que te descuides le asignara un tipo String - entiendo que el campo con el que vas a comparar en la tabla es NUMERO - el recordset que abres no borra nada .... ¿? |
|
simonpru
Habitual Unido: 24/Febrero/2009 Localización: España Estado: Sin conexión Puntos: 194 |
Enviado: 20/Noviembre/2020 a las 17:23 |
CODE no es ningún campo es CODE, del código, VARNUM es el nombre del campo del formulario, y el recordset no se abre hay tira el error, diciendo que no coinciden los tipos.
En la tabla NUMERO es un campo numérico. |
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14025 |
Enviado: 20/Noviembre/2020 a las 17:33 |
¿?
|
|
simonpru
Habitual Unido: 24/Febrero/2009 Localización: España Estado: Sin conexión Puntos: 194 |
Enviado: 20/Noviembre/2020 a las 17:44 |
nada, he definido la variable como long y sigue tirando el mismo error
|
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14025 |
Enviado: 20/Noviembre/2020 a las 17:53 |
Set TABLA = CurrentDb.OpenRecordset("SELECT * FROM BLACKFACT WHERE NUMERO =") & delete
El paréntesis de cierre de la instrucción está en mal lugar, lo que provoca que esté mal construida. |
|
simonpru
Habitual Unido: 24/Febrero/2009 Localización: España Estado: Sin conexión Puntos: 194 |
Enviado: 20/Noviembre/2020 a las 17:54 |
donde deberia estar el paréntesis de cierre?
|
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14025 |
Enviado: 20/Noviembre/2020 a las 17:57 |
Al final de la asignación del valor.
Pon un punto de interrupción justo en esta instrucción y en la ventana inmediato haz un print de: "SELECT * FROM BLACKFACT WHERE NUMERO =") & delete Esa es la orden que estás pasando a Access.
|
|
simonpru
Habitual Unido: 24/Febrero/2009 Localización: España Estado: Sin conexión Puntos: 194 |
Enviado: 20/Noviembre/2020 a las 18:13 |
descubierto, se puede cerrar el hilo, muchas gracias cracks
|
|
simonpru
Habitual Unido: 24/Febrero/2009 Localización: España Estado: Sin conexión Puntos: 194 |
Enviado: 20/Noviembre/2020 a las 18:21 |
perdona que moleste de nuevo, lo que quiero es borrar registros de distintas tablas, he visto este codigo
Dim dbs As dao.Database dbs.Execute ("DELETE * FROM BLACKFACT WHERE NUMERO =" & delete) pero al ejecutarlo me dice "variable de objeto o bloque with no establecido" Error 91. porque tira el error? |
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14738 |
Enviado: 20/Noviembre/2020 a las 18:28 |
Porque declara dbs como DAO.Database pero no realizas la asignación:
Set dbs = CurrentDb Y, de hecho, ninguna de las 2 líneas es necesaria. Ni los paréntesis. Ni la variable delete CurrentDb.Execute "DELETE * FROM BLACKFACT WHERE NUMERO = " & Me!VARNUM, dbFailOnError Un saludo
|
|
simonpru
Habitual Unido: 24/Febrero/2009 Localización: España Estado: Sin conexión Puntos: 194 |
Enviado: 20/Noviembre/2020 a las 18:51 |
perdona XAVI esa orden se puede repetir en el mismo codigo para 3 tablas?
porque he puesto esto CurrentDb.Execute "DELETE * FROM BLACKFACT WHERE NUMERO = " & Me!VARNUM, dbFailOnError CurrentDb.Execute "DELETE * FROM OPERACIONESBF WHERE NFACT = " & Me!VARNUM, dbFailOnError CurrentDb.Execute "DELETE * FROM SUBLACKFACT WHERE FACTURA = " & Me!VARNUM, dbFailOnError pero al irse a la segunda tabla me da error de sintaxis (falta operador) en la expresión de consulta "NFACT"
|
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14738 |
Enviado: 20/Noviembre/2020 a las 19:04 |
Pregunta: el formulario desde dónde lanzas ese código y que contiene el control VARNUM, ¿de basa en la tabla BLACKFACT?
Si es así, es posible que, al ejecutar la primera línea, se pierda el valor de VARNUM. Soluciones: invertir el orden de las consultas o (como ya hacias) almacenar el valor de VARNUM en una variable al empezar. Un saludo
|
|
simonpru
Habitual Unido: 24/Febrero/2009 Localización: España Estado: Sin conexión Puntos: 194 |
Enviado: 29/Diciembre/2020 a las 18:49 |
Solucionado, se puede cerrar hilo
|
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |