Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: resultado de consulta a cuadro de texto

2,226 views
Skip to first unread message

Patxi Sanz

unread,
Jan 31, 2008, 11:26:02 AM1/31/08
to
Hola cpjCarlos:

Con código, abriéndola con un Recordset, o usando DLookup en el origen del
control de texto del otro formulario.

--
Un saludo,


Patxi Sanz
patxisanz[ARROBA]yahoo[PUNTO]es
http://es.geocities.com/patxisanz/index.html
Tudela (NA)

cpjcarlos

unread,
Jan 31, 2008, 12:28:02 PM1/31/08
to
lo intente de dos formas ambas desde el origen de control del cuadro de texto
1.-=[CstDescrip]![Importe]... cstDescrip es una consulta e importe el campo
que necesito
2.-poniendo directametne mi consulta en origen de control "SELECT
Contenido.Concepto, Contenido.Guia FROM contenido WHERE
(((Contenido.Numero)=[Forms]![contenido]![numero]))"

pero en ambas no da ningún resultado ¿ me podrias ayudar con el Código?
no me ha quedado claro como hacer una consulta desde código osea fuera de
las consultas normales. Gracias


"Patxi Sanz" escribió:

Patxi Sanz

unread,
Jan 31, 2008, 1:17:54 PM1/31/08
to
Prueba esto en el origen del control del cuadro de texto:

= DLookup("[Importe]";"[CstDescrip]")

Y esto en la propiedad Origen de la fila de un cuadro combinado:

SELECT
Contenido.Concepto, Contenido.Guia FROM contenido WHERE
(((Contenido.Numero)=[Forms]![contenido]![numero]))

En la propiedad Origen del control SÓLO puede haber un dato de un campo de
un registro, no todos los registros.

cpjcarlos

unread,
Jan 31, 2008, 1:48:01 PM1/31/08
to
disculpame tal vez desde el principio no me explique bien ya que no tengo
ningún cuadro combinado, tengo un form para introducir datos a una tabla
"contenido"
tengo varios campos entre ellos "numero","guia","concepto", ninguno de ellos
es clave principal por lo que se pueden repetir

en ese mismo form necesito que en un cuadro de texto me muestre dos datos
de "guia" y de "concepto" de los registros que ya esten en la tabla con ese
mismo numero que he acabado de teclear en el campo numero.

lo necesito en un cuadro de texto por que despues lo imprimire en en recibo
junto con otros datos de ese form espero haberme dado a entender. Gracias por
tu atención Patxi

Patxi Sanz

unread,
Jan 31, 2008, 2:14:27 PM1/31/08
to
En un cuadro de texto sólo puedes mostrar 1 valor de un registro. Aunque
puedes mostrar más campos concatenándolos, aquí el problema es que quieres
mostrar varios registros, lo cual es más complicado.

La solución sencilla es usar un formulario continuo como subformulario de tu
formulario principal, que muestre los campos que quieres.

La solución complicada es usar una consulta, recoger los datos que devuelve
y unirlos para mostrarlos en el cuadro de texto.

cpjcarlos

unread,
Jan 31, 2008, 4:46:00 PM1/31/08
to
no es que prefiera la complicada pero si necesito que sea asi, me apoye con
el generador de codigo recordsets de jose Bengoechea y obtuve esto pero solo
me da los datos que necesito del registro actual y yo necesito los datos que
sean gual al numero del registro actual por citar un ejemplo de numero 53
tengo 3 guias pero solo me aparece la guia del registro actual y yo necesito
todas..

Dim miBD As DAO.Database
Dim rsContenido As DAO.Recordset


Dim lGuia As Long
Dim sConcepto As String

Set miBD = CurrentDb()
Set rsContenido = miBD.OpenRecordset("Contenido", dbOpenSnapshot)
With rsContenido
If Not (.EOF And .BOF) Then
.FindFirst BuildCriteria("Numero", 4, "= " &
[Forms]![contenido]![Numero])
If Not .NoMatch Then
lGuia = Nz(!Guia)
sConcepto = Nz(!Concepto)
End If
End If
.Close
End With

Me.Descripción.Value = lGuia & sConcepto
Debug.Print lGuia
Debug.Print sConcepto


Set rsContenido = Nothing
Set miBD = Nothing

"Patxi Sanz" escribió:

>
>.... La solución complicada es usar una consulta, recoger los datos que devuelve

Patxi Sanz

unread,
Feb 1, 2008, 10:33:19 AM2/1/08
to
Debes modificar el código para recoger todos los registros:

Dim miBD As DAO.Database
Dim rsContenido As DAO.Recordset

Dim sGuia As String
Dim sConcepto As String

Set miBD = CurrentDb()
Set rsContenido = miBD.OpenRecordset("SELECT Guia, Concepto FROM Contenido
WHERE Numero = " & [Forms]![contenido]![Numero], dbOpenSnapshot)


With rsContenido
If Not (.EOF And .BOF) Then

Do While Not .EOF Then
sGuia = sGuia & " - " & Nz(!Guia)
sConcepto = sConcepto & " - " & Nz(!Concepto)


End If
End If
.Close
End With

Me.Descripción.Value = sGuia & " / " & sConcepto
Debug.Print sGuia
Debug.Print sConcepto


Set rsContenido = Nothing
Set miBD = Nothing

Luego ya es adecuar cómo quieres unir los textos para mostrarlos en el
cuadro.

cpjcarlos

unread,
Feb 1, 2008, 1:21:00 PM2/1/08
to
copie este código que pusiste pero no obtengo ningun resultado observo que
sobra el "Do While Not .EOF Then" .... alguna idea Gracias

"Patxi Sanz" escribió:

Patxi Sanz

unread,
Feb 2, 2008, 9:07:19 AM2/2/08
to
El Do While Not .EOF no sobra. Con esta instrucción más el .MoveNext
indicamos que recorra el conjunto de registros hasta que llegue al final.

A ver así:

Dim miBD As DAO.Database
Dim rsContenido As DAO.Recordset

Dim sSql As String


Dim sGuia As String
Dim sConcepto As String

Set miBD = CurrentDb()
sSql = "SELECT Guia, Concepto FROM Contenido " & _


"WHERE Numero = " & [Forms]![contenido]![Numero]

Debug.Print sSql
Set rsContenido = miBD.OpenRecordsets(Sql, dbOpenSnapshot)

With rsContenido
If Not (.EOF And .BOF) Then
Do While Not .EOF Then
sGuia = sGuia & " - " & Nz(!Guia)
sConcepto = sConcepto & " - " & Nz(!Concepto)

.MoveNext
Loop


End If
.Close
End With

Me.Descripción.Value = sGuia & " / " & sConcepto
Debug.Print sGuia
Debug.Print sConcepto


Set rsContenido = Nothing
Set miBD = Nothing

Si sigue fallando, ¿qué aparece en la ventana Inmediato?

cpjcarlos

unread,
Feb 5, 2008, 11:36:02 AM2/5/08
to
Gracias Patxi una disculpa por contestarte hasta ahora aqui en México fueron
dias de descanso.. en principio me coloreaba en rojo la sentencia
"Do While Not .EOF Then" le quite el "then" ... pero en la ventana
inmediato no sale nada ni la primera linea cuando pones "Debug.Print sSql"

"Patxi Sanz" escribió:

Patxi Sanz

unread,
Feb 5, 2008, 2:09:42 PM2/5/08
to
Pues sí, la de fallos de escritura que he tenido :-(

Menos mal que estabas ahí para corregirme :-)

0 new messages