Foros del Web » Soporte técnico » Ofimática »

Problema con código - Access

Estas en el tema de Problema con código - Access en el foro de Ofimática en Foros del Web. Buenas tardes, paso a contarles un pequeño problema que tengo con un código que utiliza Recordsets (es código VB, de Access). El código como podrán ...
  #1 (permalink)  
Antiguo 03/06/2008, 08:12
 
Fecha de Ingreso: junio-2008
Mensajes: 9
Antigüedad: 15 años, 10 meses
Puntos: 0
Problema con código - Access

Buenas tardes, paso a contarles un pequeño problema que tengo con un código que utiliza Recordsets (es código VB, de Access). El código como podrán ver es para copiar datos en el caso de que el valor este vacio. Hasta allí todo bien, mi problema es cuando llego a cierta línea del código que me dice que esta incorrecta, pero no se encontrar que falla, aun que supongo que será un error básico, pues recién me inicio en este tema.

Este es el código:

Private Sub Comando0_Click()
Dim rsEmpreses As Recordset
Dim rsContactes As Recordset
Dim rsBuscar As Recordset

Set rsEmpreses = New Recordset
rsEmpreses.Open "SELECT IDEMPRESA, NOM, COGNOMS, CARREC, TELEFON, EMAIL FROM Empreses", CurrentProject.Connection, adOpenKeyset, adLockOptimistic, adCmdText
Set rsContactes = New Recordset
rsContactes.Open "SELECT IdContacte, Nom, Cognoms, Telefon, Carrec, Email FROM Contactes", CurrentProject.Connection, adOpenKeyset, adLockOptimistic, adCmdText

If Not rsEmpreses.EOF And Not rsEmpreses.BOF Then
rsEmpreses.MoveFirst
While Not rsEmpreses.EOF

Set rsBuscar = New Recordset
rsBuscar.Open "SELECT * FROM Contactes WHERE id_Empresa=+ rsEmpreses!IdEmpresa", CurrentProject.Connection, adOpenKeyset, adLockOptimistic, adCmdTable

(Falla esta línea, desde rsBuscar hasta adCmdTable)

If rsBuscar.RecordCount() = 0 Then
rsContactes.AddNew
rsContactes!NOM = rsEmpreses!NOM
rsContactes!COGNOMS = rsEmpreses!COGNOM
rsContactes!Telefon = rsEmpreses!Telefon
rsContactes!CARREC = rsEmpreses!CARREC
rsContactes!EMAIL = rsEmpreses!EMAIL
rsContactes!id_Empresa = rsEmpreses!IdEmpresa
End If
rsEmpreses.MoveNext
Wend
End If
End Sub

Si alguien me pudiese ayudar le estaría muy agradecido, ya que aún me estoy iniciando en este tema y necesitaria arreglar esto cuánto antes... si alguien puede darme una pista por pequeña que sea se lo agradeceria mucho.

PD: Es mi primer mensaje en este foro, no se si este mensaje va en este lugar... pero no encontré otro, pido disculpas si no lo puse bien.
  #2 (permalink)  
Antiguo 03/06/2008, 08:29
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 4 meses
Puntos: 144
Respuesta: Problema con código - Access

Como supongo que la id de la empresa es numérica, prueba a cambiar:
Código:
"SELECT * FROM Contactes WHERE id_Empresa=+ rsEmpreses!IdEmpresa" 
Por esto:
Código:
"SELECT * FROM Contactes WHERE id_Empresa=" & rsEmpreses!IdEmpresa
Salu2
  #3 (permalink)  
Antiguo 03/06/2008, 08:52
 
Fecha de Ingreso: junio-2008
Mensajes: 9
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con código - Access

Hola, agradezco la rápida respuesta y la ayuda que me ofreciste.
Estube probando para ver si conseguia hacerlo funcionar con lo que me dijiste pero me dice error de sintaxis en la cláusula FROM, tengo esta línea ahora, tal como comentaste:

rsBuscar.Open "SELECT * FROM Contactes WHERE id_Empresa=" & rsEmpreses!IdEmpresa, CurrentProject.Connection, adOpenKeyset, adLockOptimistic, adCmdTable

¿Es necesario añadir CurrentProject hasta adCmdTable, verdad? Por qué lo que es la sintaxis lo veo correcto.

Saludos
  #4 (permalink)  
Antiguo 03/06/2008, 08:57
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 4 meses
Puntos: 144
Respuesta: Problema con código - Access

Se supone que en la tabla Contactes, tienes un campo llamado id_Empresa, ¿verdad?.

¿El error que te tiraba inicialmente, también era de sintaxis?.

Última edición por 3pies; 03/06/2008 a las 09:10
  #5 (permalink)  
Antiguo 03/06/2008, 09:13
 
Fecha de Ingreso: junio-2008
Mensajes: 9
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con código - Access

Si, se llama id_Empresa.

La verdad me ha dado varios tipos de errores a medida que he ido retocando para mirar de arreglar. Me ha dado los siguientes:

- No coinciden los tipos
- Error de sintaxis en cláusula FROM

Me suena de algún otro, pero la verdad no recuerdo aquellos.

Gracias por tomarte la molesta de hecharme una mano.
  #6 (permalink)  
Antiguo 05/06/2008, 07:58
 
Fecha de Ingreso: junio-2008
Mensajes: 9
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con código - Access

Up... ¿Alguna sugerencia nueva?, sigo con el mismo problema y por mucho que toque me da algun tipo de error. Pondría la mano al fuego de que está cerca del Where el error, pero por mucho que modifique no consigo arreglarlo.

He retocado el código hasta el punto que queda así, pero me da error de sintaxis:

rsBuscar.Open ("SELECT * FROM Contactes WHERE id_Empresa = '" & rsEmpreses!IdEmpresa & "'"), CurrentProject.Connection, adOpenKeyset, adLockOptimistic, adCmdTable

Si alguien sabe, por pequeña ayuda que sea le estaré agradecido.

Gracias de antemano

Última edición por oMart; 05/06/2008 a las 08:03
  #7 (permalink)  
Antiguo 06/06/2008, 03:15
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Problema con código - Access

Dos pregunta.
1. Lo que quieres ahcer es pegar en la tabla contactes, los registros de la tabla empreses cuyo idEmpresa esta vacio???

2. En ese ultimo intento, que error te da exacatmente?? Para aclararnos, con la ultima prueba (copia el codigo excato), que error te da???

Un saludo
  #8 (permalink)  
Antiguo 06/06/2008, 07:46
 
Fecha de Ingreso: junio-2008
Mensajes: 9
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con código - Access

Listo ahí consegui arreglar la maldita frase, la dejé así y ya no da error:

rsBuscar.Open "SELECT * FROM Contactes WHERE id_Empresa = " & rsEmpreses!IdEmpresa, CurrentProject.Connection, adOpenKeyset, adLockOptimistic, adCmdText

Ahora me da error más abajo, en este punto:

rsContactes!id_Empresa = rsEmpreses!IdEmpresa

Me da el siguiente mensaje de error:

"No se encontró el elemento en la colección que corresponde con el nombre o el ordinal pedido"

¿Qué quiere decir que falla algun tipo de nombre? De ser así están todos bien

Gracias por sus respuestas!
  #9 (permalink)  
Antiguo 06/06/2008, 07:50
 
Fecha de Ingreso: abril-2008
Mensajes: 264
Antigüedad: 16 años
Puntos: 2
Respuesta: Problema con código - Access

Código:
 rsContactes!id_Empresa = rsEmpreses!IdEmpresa
Ojo que a la izquierda estas utilizando id_Empresa y a la derecha IdEmpresa, con mayúscula y guión bajo. ¿es correcto eso?
__________________
Saludoss
Guille
  #10 (permalink)  
Antiguo 06/06/2008, 07:55
 
Fecha de Ingreso: junio-2008
Mensajes: 9
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con código - Access

Cita:
Iniciado por guille_el3 Ver Mensaje
Código:
 rsContactes!id_Empresa = rsEmpreses!IdEmpresa
Ojo que a la izquierda estas utilizando id_Empresa y a la derecha IdEmpresa, con mayúscula y guión bajo. ¿es correcto eso?
Si, es correcto.

El campo de la tabla Contactes es id_Empresa y el de la tabla Empreses IDEMPRESA (si, en mayusculas, pero no se por que me lo pone automáticamente "IdEmpresa" en vez de "IDEMPRESA", ¿puede ser ese el error?
  #11 (permalink)  
Antiguo 06/06/2008, 08:45
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 4 meses
Puntos: 144
Respuesta: Problema con código - Access

Te pasa porque en esta línea no llamaste al campo id_Empresa de la tabla Contactes, por eso te da error, ya que no lo tiene cargado en memoria:
Código:
rsContactes.Open "SELECT IdContacte, Nom, Cognoms, Telefon, Carrec, Email FROM Contactes",
Cámbiala por esta otra:
Código:
rsContactes.Open "SELECT IdContacte, id_Empresa, Nom, Cognoms, Telefon, Carrec, Email FROM Contactes",
Salu2
  #12 (permalink)  
Antiguo 06/06/2008, 08:55
 
Fecha de Ingreso: junio-2008
Mensajes: 9
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con código - Access

Cita:
Iniciado por 3pies Ver Mensaje
Te pasa porque en esta línea no llamaste al campo id_Empresa de la tabla Contactes, por eso te da error, ya que no lo tiene cargado en memoria:
Código:
rsContactes.Open "SELECT IdContacte, Nom, Cognoms, Telefon, Carrec, Email FROM Contactes",
Cámbiala por esta otra:
Código:
rsContactes.Open "SELECT IdContacte, id_Empresa, Nom, Cognoms, Telefon, Carrec, Email FROM Contactes",
Salu2
Gracias por la respuesta.

La verdad que esa probabilidad la probé, ya le introducí id_Empresa en rsContactes pero sigue dando el mismo error. De todas formas ya se lo metí tal como dices, pero sigue dando el error que dije anteriormente... no puede ser por que me pone IdEmpresa automáticamente en vez de IDEMPRESA?

Saludos
  #13 (permalink)  
Antiguo 06/06/2008, 09:06
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 4 meses
Puntos: 144
Respuesta: Problema con código - Access

En teoría debería dar lo mismo mayúsculas que minúsculas.

¿Seguro que después de incluir eso, te sigue dando el mismo error:"No se encontró el elemento en la colección que corresponde con el nombre o el ordinal pedido", y en la misma línea?.
  #14 (permalink)  
Antiguo 06/06/2008, 09:16
 
Fecha de Ingreso: junio-2008
Mensajes: 9
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con código - Access

Así es...:



Y despúes de darle a ejecutar...:



La verdad no se por que le ocurre esto, le puse aquella línea como comentario y me copió los datos, pero claro, le falta copiar el campo de id_Empresa...
  #15 (permalink)  
Antiguo 07/06/2008, 18:24
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Problema con código - Access

Cita:
Iniciado por Taribo007 Ver Mensaje
Dos pregunta.
1. Lo que quieres ahcer es pegar en la tabla contactes, los registros de la tabla empreses cuyo idEmpresa esta vacio???

2. En ese ultimo intento, que error te da exacatmente?? Para aclararnos, con la ultima prueba (copia el codigo excato), que error te da???

Un saludo
Si la respuesta a la primera pregunta es si, te sobra todo el codigo y te basta con una sentencia.

Un saludo
  #16 (permalink)  
Antiguo 08/06/2008, 12:53
 
Fecha de Ingreso: junio-2008
Mensajes: 9
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con código - Access

Lo que quiero basicamente es copiar en Contactes desde la tabla Empreses los campos que esten vacios en Contactes...
  #17 (permalink)  
Antiguo 09/06/2008, 02:01
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Problema con código - Access

Si me he enterado bien, prueba asi:

DoCmd.RunSQL "INSERT INTO Contactes (Id_Empresa, Nom, Cognoms, Telefon, Carrec, Email) SELECT Empreses.IDEMPRESA, Empreses.NOM, Empreses.COGNOMS, Empreses.CARREC, Empreses.TELEFON, Empreses.EMAIL " & _
" FROM Contactes RIGHT JOIN Empreses ON Contactes.Id_Empresa = Empreses.IDEMPRESA " & _
" WHERE Contactes.Id_Empresa Is Null;"

Un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:41.