Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Duda en Access

Estas en el tema de Duda en Access en el foro de Bases de Datos General en Foros del Web. Hola a todos, He comenzado a utilizar Access hace pocos días por necesidad y ya me he encontrado con el primer problema. A ver si ...

  #1 (permalink)  
Antiguo 16/10/2008, 02:05
 
Fecha de Ingreso: enero-2005
Mensajes: 22
Antigüedad: 19 años, 10 meses
Puntos: 0
Duda en Access

Hola a todos,

He comenzado a utilizar Access hace pocos días por necesidad y ya me he encontrado con el primer problema.
A ver si lo puedo explicar con la suficiente claridad, estoy intentado pasar una bases de datos antigua a Access y lo que me ocurre es lo siguiente, tengo dos tablas de Excel, una es un censo de locales con todos sus datos y en la que sale el tipo de local indicado con un código numerico, a esta tabla la llamaremos "Censo", y la otra es una pequeña tabla con dos columnas que indican los tipos de local que hay (en letra) y su correspondiente código numerico (el cual es igual al que sale en la tabla "Censo"), a esta la llamaremos "Tipos". Entonces, lo que necesito es conseguir que cuando en el campo correspondiente de un formulario se vea el código indicando el tipo de local que está en la tabla "Censo", se muestre automáticamente en un campo contiguo el nombre correspondiente a ese código que sale en la tabla "Tipos".
No sé si me he explicado muy bién, pero ahí queda eso. Si necesitáis cualquier aclaración adicional no dudéis en preguntarme.
Espero que alguien pueda echarme una mano.
Un saludo a todos.
  #2 (permalink)  
Antiguo 16/10/2008, 02:47
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 17 años, 3 meses
Puntos: 18
Respuesta: Duda en Access

El formulario supongo que tendra como origen de registro la tabla Censo. Vamos a cambiar este origen de control, por una consulta en el que se incluya la tabla Tipos con el campo en cuestion.

Crrea una nueva consulta, incluye las dos tabla, y unelas (si no te lo haces access directamente) por el campo TipoLocal, el que es de tipo numerico.

Incluye en la consulta todos los campos de la tabla censo, y el campo de texto de la tabla Tipos.

Ya tienes disponible este campo para usarlo en el form. Pon un cuadro de texto, y en su origen de control ponle este campo (el de texto de la tabla Tipo)

Un saludo
  #3 (permalink)  
Antiguo 16/10/2008, 02:48
 
Fecha de Ingreso: junio-2008
Ubicación: Tarija
Mensajes: 79
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Duda en Access

¿Podrias dar un detalle de los campos de ambas tablas?
  #4 (permalink)  
Antiguo 16/10/2008, 06:42
 
Fecha de Ingreso: enero-2005
Mensajes: 22
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Duda en Access

Taribo007:

Así es, los campos del formulario tienen como origen de registro a los campos de la tabla censo.
He intentado lo que explicas pero no me funciona. Te pongo exáctamente lo que he hecho, no vaya aser que esté metiendo la gamba por algún sitio.

He creado la nueva consulta, incluido las dos tablas en cuestión, desecho la unión que se había creado por defecto y he vuelto a crear la unión entre el campo TipoLocal de la tabla Censo y TipoLocal de la tabla Tipos, los dos numéricos.

A continuación he arrastrado al inferior de la ventana todos los campos de la tabla Censo y el campo Texto de la tabla Tipos para que se añadieran. He cerrado y guardado la consulta.

Después he abierto el formulario y en el campo que quiero que me aparezca automáticamente el texto indicando el tipo de local, he puesto como origen de control el campo Texto de la nueva consulta creada.

Una vez terminado, en el campo me aparece esto: #¿Nombre?

Brozov:

La tabla Censo tiene un monton de columnas, en las dos tablas el campo con el código que indica el tipo de local es un campo numérico que tiene diferentes valores entre 1 y 100 aproximadamente (01, 03, 66....). En la tabla Tipos además junto a cada código hay otro campo con una explicación textual del tipo de local.

Aquí tienes una imagen de la tabla Tipos.


No estoy seguro de si esto es exactamente lo que me pides.

Un saludo.
  #5 (permalink)  
Antiguo 16/10/2008, 08:28
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 17 años, 3 meses
Puntos: 18
Respuesta: Duda en Access

Una vez creada la consulta, si la ejecutas, sale el campo texto de la tabla tipos??

Si esto es asi, igual te falta hacer una cosa que se me ha pasado, tienes que cambiar el origen de registro del formulario. Quitar la tabla y poner la nueva consulta.

Luego, en el origen de control del cuadro de texto, despliega la lista, y te deberia salir ese campo (el de texto de la tabla tipos)

Comentame a ver si vamos bien

Un saludo
  #6 (permalink)  
Antiguo 17/10/2008, 01:18
 
Fecha de Ingreso: enero-2005
Mensajes: 22
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Duda en Access

En la tabla Tipos es donde está situado el campo Texto. Ya salía antes de hacer nada.

¿Como se cambia el rigen de control de la tabla?, yo lo que sé es cambiar el de un campo en concreto.

Por el momento, cuando voy al origen de control del cuadro de texto, el campo Texto solo me aparece dentro de la tabla tipos, en Censo no está.
  #7 (permalink)  
Antiguo 17/10/2008, 02:52
 
Fecha de Ingreso: enero-2005
Mensajes: 22
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Duda en Access

Vale, me había liado un poco yo solo pero ya lo tengo claro.
Tenías razón, faltaba cambiar el origen de control del formulario para que apareciera el campo Texto. Ahora funciona perfectamente.
Muchas gracias por tu ayuda. Si no fuera por los foros y la gente desinteresada como tú mas de uno estaríamos apañados.
Un saludo.
  #8 (permalink)  
Antiguo 17/10/2008, 06:25
 
Fecha de Ingreso: enero-2005
Mensajes: 22
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Duda en Access

Hola de nuevo,

Pues nada, me temo que ya estoy de vuelta por aquí con otro problema. A ver si tengo suerte y también me podéis ayudar con este.
He estado utilizando la solución que me ha dado Taribo007 para mi problema anterior en varios campos de la base de datos, pero he llegado a una parte donde no funciona de la manera deseada.
Esto es lo que necesito hacer:

En el formulario tengo un grupo de 8 campos, llámemoslo grupo A, que tienen como origen de control sendos campos numéricos de la tabla Censo, y junto a ellos otros 8 campos, los llamaremos grupo B, donde tiene que aparecer un texto establecido en una tabla que llamaremos Modalidades y que tiene 2 columnas "Código" y "Texto". Necesito vincular los campos del grupo A al campo "Código" de la tabla Modalidades y que en el formulario semuestre el texto que corresponda a dicho codigo en los campos del grupo B. Casi nada. Espero que se entienda.
Os pongo una foto de la parte del formulario y de la tabla:


Un saludo.
  #9 (permalink)  
Antiguo 18/10/2008, 18:06
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 17 años, 3 meses
Puntos: 18
Respuesta: Duda en Access

Y, como antes, no puedes hacer que el campo texto forme parte del origen del registro del formulario?? Supongo que ya lo habras probado, por que no te funciona??

Otra solucion, mas "compleja" y mas costaosa en recursos, es poner en el origen del control de los controles del gurpo b, el valor que buscas (para lo que usaremos la funcion dlookup), algo asi:

=Dlookup("Texto";"NombreTabla";"Codigo=" & [Formularios]![NombreFormulario]![Codigo])

Un saludo
  #10 (permalink)  
Antiguo 20/10/2008, 01:06
 
Fecha de Ingreso: enero-2005
Mensajes: 22
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Duda en Access

Sí, he probado a hacer lo mismo que antes y cuando lo hago con un solo campo de los 8 funciona bién. El problema aparece cuando repito la operación 2 o más veces. No acabo de entender porque no funciona, creía que tendía algo que ver con el echo de que, en la consulta, tengo que relacionar los 8 campos del grupo A del formulario con un mismo campo en tabla Modalidades. Aunque también he probado a duplicar 8 veces el campo de la tabla Modalidades, para que los 8 campos del grupo A se relacionen con 8 campos diferentes en la tabla, pero tampoco funcionaba.

He intentado la otra solución que me das y no me funciona, pero no estoy seguro de haberla introducido bién. A ver si lo tengo claro:

En "Texto" pongo el nombre del campo Texto de la tabla Modalidades, o sea que se queda así como está.
En "NombreTabla" pongo "Modalidades", que es el nombre de la tabla donde está el campo Texto.
En "Codigo=" pongo el nombre del campo Codigo de la tabla Modalidades donde indica el código correspondiente a cada texto seguito del signo =, por lo que también se queda como está.
En [Formularios] lo dejo como está.
En [NombreFormulario] pongo el nombre del formulario, que es Censo, así que se queda [Censo].
Y en [Codigo] pongo [CON_CON1], que es el nombre del campo que contiene el código dentro de la tabla Censo.

Dime si lo estoy metiendo mal por favor.

Un saludo.
  #11 (permalink)  
Antiguo 20/10/2008, 01:31
 
Fecha de Ingreso: enero-2005
Mensajes: 22
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Duda en Access

Por si te sirve de algo, me he dado cuenta se lo siguiente: antes de modificar la consulta y que apareciera este último problema, la tabla de dicha consulta mostraba 119.658 registros, pero al introducir la tabla Modalidades dentro de la consulta y unir el primero de los 8 campos de la tabla Censo al de Codigo de la tabla Modalidades, estos se reducen a 1.662, al unir el segundo de los 8 campos al de Codigo se reducen a 3 y al unir el tercero ya desaparecen todos. Aunque esta claro que no entiendo porque pasa esto, parece que se cruzan datos por algún sitio al hacer las uniones.
Espero que te aclare algo el tema.
  #12 (permalink)  
Antiguo 20/10/2008, 01:42
 
Fecha de Ingreso: enero-2005
Mensajes: 22
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Duda en Access

Pues nada, ahora me acabo de dar cuenta de que esto último que te he explicado no es exactamente así. La cantidad de registros que hay originalmente en la tabla creada al ejecutar la consulta son 1813, los 119.658 registros aparecen despues de añadir la tabla Modalidades a la consulta, pero antes de hacer ninguna unión con la de Censo. Lo de después sí que es como te he explicado.
  #13 (permalink)  
Antiguo 20/10/2008, 03:01
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 17 años, 3 meses
Puntos: 18
Respuesta: Duda en Access

Si necesitas relacionar 8 campos en una consulta, es que hay algo muy mal en la estructura de la bd.
Sabes paraq ue sirven estas relaciones??? Y por que cada vez que unes un campo salen menos registros???

En cuanto a la otra solucion, el campo Codigo es de tipo numerico o de texto??

Un saludo
  #14 (permalink)  
Antiguo 20/10/2008, 05:43
 
Fecha de Ingreso: enero-2005
Mensajes: 22
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Duda en Access

No creo que haya nungún problema en la bd. Lo mas probable es que me haya explicado mal y no hayas entendido lo que necesito hacer.
Vamos a olvidarnos de lo dicho hasta ahora, yo había probado a hacerlo con las relaciones que tu me has enseñado, pero es posible que para lo que quiero esta vez no se pueda hacer así y esté luiándolo todo mas de lo necesario
Voy a ponerte una foto de la parte del formulario en cuestión e intentaré explicarlo de nuevo de forma mas clara:

Los campos A1, A2, A3 y A4, cogen el dato de 4 campos diferentes de la tabla Censo y lo que yo necesito es que en los 4 campos de modalidades se muestre el texto que corresponde al código que sale en el campo que tiene a la izquierda. La definición de dichos códigos esta en una tabla aparte, que es la llamada Modalidades.

Dime si lo tienes claro.
  #15 (permalink)  
Antiguo 20/10/2008, 06:25
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 17 años, 3 meses
Puntos: 18
Respuesta: Duda en Access

Vale, creo que si.

Prueba esto: pon un boton, y al pulsarlo lo siguiente:

msgbox dlookup("Texto","Modalidades","Codigo=" & me.A1)

Siendo en el ejemplo, me.A1 el nombre del cuadro de texto que en la imagen que has puesto pone 040

Si es correcto, y el campo codigo es de tipo numerico, te deberia salir un mensaje al pulsar el boton con el texto correspondiente al codigo 040 de la tabla mosalidades.

Si esto funciona, tienes dos opciones, o bien ejecutar esta misma sentencia en el load del form, es decir, en su evento al cargar, donde asiganriamos a los cuadros de texto que tienes en la imagen rodeados como modalidades, esa expresion, es decir:

me.Modalidad1=dlookup("Texto","Modalidades","Codig o=" & me.A1)
me.Modalidad2=dlookup("Texto","Modalidades","Codig o=" & me.A2)
me.Modalidad3=dlookup("Texto","Modalidades","Codig o=" & me.A3)
me.Modalidad4=dlookup("Texto","Modalidades","Codig o=" & me.A4)

Y la otra opcion, es la que te comentaba antes, extrapolar estas expresiones directamente al origen de control de cada cuadro de texto, los de modalidades, pero con las modificaciones indicadas, cambiar las , por ; Cambiar me.A1 por froms!nombreform!A1

Si conseguimos esto, te hablare de la funcion nz, para evitar el error que devuelve la funcion dlookup en caso de no encontrar en la tabla nigun registro que cumpla con el criterio

Prueba y me cuentas

un saludo
  #16 (permalink)  
Antiguo 21/10/2008, 01:14
 
Fecha de Ingreso: enero-2005
Mensajes: 22
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Duda en Access

He probado lo que comentas pero no me funciona.
Teniendo en cuenta los siguientes parametros:

Nombre del campo de la tabla de modalidades: Modalidades tarifa
Nombre del campo de texto de la tabla de modalidades: Texto
Nombre del campo del formulario que contiene el 040: Texto181

¿Quedaría de una de estas dos formas?

msgbox dlookup("Texto","Modalidades tarifa","Codigo=" & Texto181)
msgbox dlookup("Texto","Modalidades tarifa","Codigo=" & me.Texto181)

Las he probado las dos y me devuelve el siguiente error al pulsar el boton:

DBExcel no puede encontrar la macro 'msgbox dlookup("Texto","Modalidades tarifa","Codigo=" & Texto181)'.
La macro (o su grupo de macros) no existe o la macro es nueva pero no se ha guardado.
Observe que cuando introduce la sintaxis nombre_grupo_macro.nombre_macro en un argumento, debe especificar el nombre con el que se guardó por última vez el grupo de macros de la macro.
  #17 (permalink)  
Antiguo 21/10/2008, 01:41
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 17 años, 3 meses
Puntos: 18
Respuesta: Duda en Access

Esa expresion, la has puesto en el modulo del formulario, o directamente en la ventana de propiedades del boton???

Me explico, si abres la ventana de propiedades del boton, pestaña evento, te situas en la linea que pone al hacer click, te vas a la derecha del todo, y pulsas un boton pequeño que hay con tres puntitos (...), te saldra una ventana que pone "seleccionar evento", y tienes que elegir "de codigo"

Si hemos hecho esto bien, se te abrira la ventana de codigo vba de esta forma:

Private Sub Texto181_Click()

End Sub


Entre estas dos sentencias, tienes que introducir lo del msgbox, lo has hecho asi???


Por otro lado, esto que comentas me confunde un poco:

Nombre del campo de la tabla de modalidades: Modalidades tarifa
Nombre del campo de texto de la tabla de modalidades: Texto

En esta sentencia:

msgbox dlookup("Texto","Modalidades tarifa","Codigo=" & me.Texto181

Lo rojo debe ser el nombre de la tabla, esta bien???
Y una ultima pregunta, el campo Codigo es de tipo texto??? Esta en la tabla Modalidades (creo que se llama asi)

Un saludo
  #18 (permalink)  
Antiguo 21/10/2008, 02:25
 
Fecha de Ingreso: enero-2005
Mensajes: 22
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Duda en Access

Vale, no lo estaba haciendo como explicas, estaba escribiendo la expresión tal cual directamente en la línea "al hacer click" de la ventana de propiedades.

Perdona, me he equivocado escibiendo, no quería decir "Nombre del campo de la tabla de modalidades: Modalidades tarifa" sino "Nombre de la tabla de modalidades: Modalidades tarifa"

En cuanto al campo Codigo, es numérico y se encuentra tanto en la tabla de Modalidades, como en la consulta (que a su vez la recoge de la tabla de Censo)


Un saludo.
  #19 (permalink)  
Antiguo 21/10/2008, 02:30
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 17 años, 3 meses
Puntos: 18
Respuesta: Duda en Access

Vale, vamos bien, entoces tenemos esto:

Private Sub Texto181_Click()
msgbox dlookup("Texto","Modalidades tarifa","Codigo=" & me.Texto181)
End Sub

Funciona al pulsar el boton??

Un saludo
  #20 (permalink)  
Antiguo 21/10/2008, 03:16
 
Fecha de Ingreso: enero-2005
Mensajes: 22
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Duda en Access

No, me da el siguiente error de Visual Basic:

Se ha producido el error '3464' en tiempo de ejecución:
No coinciden los tipos de datos en la expresión de criterios.
  #21 (permalink)  
Antiguo 21/10/2008, 03:30
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 17 años, 3 meses
Puntos: 18
Respuesta: Duda en Access

Prueba asi un momento, tal cual te lo pongo:

Private Sub Texto181_Click()
msgbox dlookup("Texto","Modalidades tarifa","Codigo='" & me.Texto181 & "'")
End Sub

Un saludo
  #22 (permalink)  
Antiguo 21/10/2008, 04:22
 
Fecha de Ingreso: enero-2005
Mensajes: 22
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Duda en Access

Bueno, parece que me he vuelto a liar y creo que estoy haciendo algo mal al crear el botón.
Creo un boton de comando en una zona libre del formulario y me sale el asistente, ¿Debo seleccionar algo en el o lo cierro y voy directamente a las propiedades?
Si lo cierro y voy a las propiedades, y pincho en los puntos suspensivos de la linea "al hacer clik" y me sale esto:

Private Sub Comando255_DblClick(Cancel As Integer)

End Sub

He intentado sustituirlo por lo que tu me pones, pero al cerrar la ventana y volver a la ventana de propiedades la linea aparece en blanco, tengo que abrir el desplegable para seleccionar la única opcion que hay. Después cierro las propiedades y le doy al botón pero no pasa nada. Vuelvo a entrar en la propiedades y pincho en los puntos suspensivos y me sale esto:


Private Sub Comando256_DblClick(Cancel As Integer)

End Sub
__________________________________________________ ___________

Private Sub Texto181_Click()
MsgBox DLookup("Texto", "Modalidades tarifa", "Codigo=" & Me.Texto181)
End Sub

Un saludo.
  #23 (permalink)  
Antiguo 21/10/2008, 04:38
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 17 años, 3 meses
Puntos: 18
Respuesta: Duda en Access

Vamos a ver, crea el boton con el asistente, y cierralo, exactamente como estas haciendo.

Luego, coloca el raton sobre el boton, pulsa el boton derecho y elige:

generar evento >> de codigo

Se te deberia abrir la ventana de codigo VBA con esto:

Private Sub Texto181_Click()
End Sub

Con la salvedad de que, en lugar de Texto181, pondra el nombre dle boton, es decir:

Private Sub NombreDelBoton_Click()
End Sub

Vale, pues entre esas dos sentencias:
Private Sub NombreDelBoton_Click()
'AQUI
End Sub

Copia esto:

MsgBox DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto181 & "'")

sustituyendo Me.Texto181 por Me.NombreDelBoton

Guarda el formulario, ejecutalo, y pulsa el boton.

Un saludo
  #24 (permalink)  
Antiguo 21/10/2008, 04:57
 
Fecha de Ingreso: enero-2005
Mensajes: 22
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Duda en Access

Vale, ya lo he hecho y me sale el siguiente error de Visual Basic:

Se ha producido el error '438' en tiempo de ejecución:
El objeto no admite esta propiedad o método.

Un saludo.
  #25 (permalink)  
Antiguo 21/10/2008, 05:00
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 17 años, 3 meses
Puntos: 18
Respuesta: Duda en Access

Copia exactamente lo que has hecho, y enq ue linea te marca el error

Un saludo
  #26 (permalink)  
Antiguo 21/10/2008, 05:17
 
Fecha de Ingreso: enero-2005
Mensajes: 22
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Duda en Access

Abro el formulario en vista diseño, creo un boton de comando, cancelo el asistente, pincho con el botón derecho encima del nuevo boton, selecciono "Generador de código" y acepto. A continuación se me abre el editor con lo siguiente:

Private Sub Comando260_Click()

End Sub


Pongo el cursor entre las dos líneas de texto y copio esto:

MsgBox DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto181 & "'")

sustituyendo Texto181 por Comando260. Le doy a guardar y cierro el editor, pongo el formulario en vista formulario, le doy al boton y me sale el error que menciono en mi anterior respuesta.

Un saludo.
  #27 (permalink)  
Antiguo 21/10/2008, 08:30
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 17 años, 3 meses
Puntos: 18
Respuesta: Duda en Access

Esperate, por que la final me he hecho un lio (y te lo he hecho a ti)

Esta todo bien, excepto que donde pone Texto181 no tienes que poner el nombre del boton, sino el nombre del cuadro de texto que contiene lo que buscas en la tabla, es decir, segun tu imagen, el cuadro de texto de la fila A1, columna Censos

quedaria por tanto:

MsgBox DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.NombreDelCuadrODeTexto& "'")

Perdona por el lio

Un saludo
  #28 (permalink)  
Antiguo 22/10/2008, 00:43
 
Fecha de Ingreso: enero-2005
Mensajes: 22
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Duda en Access

Aleluya!! Ya funciona, me sale una ventana con el texto correspondiente al código de la casilla A1.

Vale, he estado revisando tus respuestas anteriores acerca de las dos opciones que tengo ahora, pero con tanto cambio de formula ya no estoy seguro de como tengo que introducirla. Melo podrías explicar otra vez en base a esta, que es la que me funciona:

MsgBox DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto181 & "'")

Por cierto, no tienes porque disculparte. Además, seguramente han sido mis explicaciones las que te han liado.

Un saludo.
  #29 (permalink)  
Antiguo 22/10/2008, 01:34
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 17 años, 3 meses
Puntos: 18
Respuesta: Duda en Access

Teniendo en cuenta que asi te funciona, significa que el campo Codigo es de tipo texto, si observas la diferencia, entre esta:
MsgBox DLookup("Texto", "Modalidades tarifa", "Codigo=" & Me.Texto181)
que te daba error de no coinciden los tipos, y esta:
MsgBox DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto181 & "'")
Son las comillas simples que he puesto en rojo, ya que se trata de un campo de tipo texto.

Aparte de esto, ahora lo que queremos es que eso que te sale en el mensajito, se "coloque" en el cuadro de texto de (segun la imagen), fila A1, columna modalidades. Como ya te vas familiarizando con el codigo, vamos a hacerlo asi. Vamos a usar el evento "al cargar" del formulario. Para ello, abre el editor de propiedades del formulario, pestaña eventos, situate en la fila de "al cargar", pulsa los tres puntitos, y elige generar evento de codigo. Se te deberia abria la ventana de VBA asi:

Private Sub Form_Load()

End Sub

Pues ahi dentro vamos a poner:

me.NombreCuadroTextoModalidadA1=DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto181 & "'")

siendo NombreCuadroTextoModalidadA1 el nombre del cuadro de texto de la fila A1, columna modalidades (segun la imagen)

Cunado esto funcione, lo haremos para los otros tres campos, y finalmente aplizaremos la funcion Nz, que luego veremos, para evitar posibles errores con los nulos que se pueden producir al usar la funcion dlookup

Un saludo
  #30 (permalink)  
Antiguo 22/10/2008, 02:43
 
Fecha de Ingreso: enero-2005
Mensajes: 22
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Duda en Access

Vale, he seguido tus indicaciones y no funciona del todo
Te explico, 040 es MECANICA TIPO 1, 050 es T.V.RECEPTORES, 130 es AM 2007 y así otros muchos...

Entonces, cuando introduzco solo una de las lineas, así:

Private Sub Form_Load()
Me.Texto182 = DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto181 & "'")
End Sub

en el primero de los campos de modalidades se muesta correctamente el Texto correspondiente al código de la casilla A1, pero al añadir las otras 3 así:

Private Sub Form_Load()
Me.Texto182 = DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto181 & "'")
Me.Texto189 = DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto188 & "'")
Me.Texto196 = DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto195 & "'")
Me.Texto203 = DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto202 & "'")
End Sub

se me quedan bloqueados los campos de Modalidades mostrando siempre "MECANICA TIPO 1" el primero (correspondiente al A1) y "T.V.RECEPTORES" el segundo (correspondiente al A2). Los otros dos (los correspondientes a A3 y A4) se quedan en blanco.

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 23:16.