Control de records..

Saludos aquí vamos con algo diferente y para mi es complicado. Ahora bien tengo una forma que se llama forma1 la cual tiene numero, nombre, direction 1 y direction 2, en la forma1 a su vez tiene un subformulario que se llama subforma2 en la misma trae los siguientes datos fecha entrada, fecha de salida, y bandera, como sabes subforma2 trae los datos basados en la llave numero de Forma1, ahora mi problema es que cuando estoy en el subformulario cuando estoy en el campo fecha de salida tengo esta rutina:
Private Sub Tag_Number_GotFocus()
If Combo30 = "D" Then
Dim choi As String
choi = InputBox("Do you want print pass", "PinNumber")
If choi = "Y" Then
' ******************************
Dim stDocNamef16 As String
Dim stLinkCriteriaf16 As String
stDocNamef16 = "Get There Plus"
stLinkCriteriaf16 = "[Pin Code Number]=" & "'" & Me![Resident Pin Code Number] & "'"
DoCmd.OpenReport stDocNamef16, acViewPreview, , stLinkCriteriaf16
'******************************
Else
End If
Else
End If
End Sub
Y el problema es que me imprime todos los records del subformulario y no solo el record donde estoy en el subformulario. Como ves esta rutina tiene una condición para imprimir a su vez carga la llave pero me imprime en el pequeño reporte todos los records del subformulario, y lo que deseo es que imprima solo la información donde estoy situado en el subformulario osea el subformulario puede tener muchos records y solo quiero imprimir desde donde yo este, obviamente tengo información en la forma que necesito utilizar también, ¿gracias amigo?.

1 respuesta

Respuesta
1
Listo te entendí.
Para poder filtrar por un registro activo del subformulario, debemos basarnos en un campo de el, por ejemplo en una llave o dato QUE NO SE REPITA EN EL SUBFORMULARIO... y ademas filtrarlo por la llave del formulario como lo tiene... imaginemos que hay un campo llamado id y lógicamente el el subformulario hay una caja llamada TxtId por la que filtraremos también, y este subflrmualrio imaginemos que se llame MiSubForm entonces:
...
stLinkCriteriaf16 = "[Pin Code Number]=" & "'" & Me![Resident Pin Code Number] & "' and Id = " & MiSubForm.form.TxtId & ""
DoCmd. OpenReport stDocNamef16, acViewPreview,, stLinkCriteriaf16
...
Y el filtro ahora esta por dos criterios por la llave principal y el id...
Att:telemaco
Dice eRROR 13 TYPE MISMATCH.
Private Sub Tag_Number_GotFocus()
If Combo30 = "D" Then
Dim choi As String
choi = InputBox("Do you want print pass", "PinNumber")
If choi = "Y" Then
' ******************************
Dim stDocNamef16 As String
Dim stLinkCriteriaf16 As String
stDocNamef16 = "Get There Plus"
stLinkCriteriaf16 = "[Pin Code Number]=" & "'" & Me![Resident Pin Code Number] & "'" And ID = "& Guest And Service Entry subform.form.ID & """
DoCmd.OpenReport stDocNamef16, acViewPreview, , stLinkCriteriaf16
'******************************
Else
End If
Else
End If
End Sub
Es que no pñuedes dejar espacios en el nombre del subformulario, deberías hacer esto:
stLinkCriteriaf16 = "[Pin Code Number]=" & "'" & Me![Resident Pin Code Number] & "'" And ID = "& [Guest And Service Entry subform].form.ID & """
El nombre del subform lo colocas entre corcehetes, para que los espacio no deje rror
Me avisas
Att:telemaco
Sigue con el mismo error. Este es el código:
Private Sub Tag_Number_GotFocus()
If Combo30 = "D" Then
Dim choi As String
choi = InputBox("Do you want print pass", "PinNumber")
If choi = "Y" Then
' ******************************
Dim stDocNamef16 As String
Dim stLinkCriteriaf16 As String
stDocNamef16 = "Get There Plus"
stLinkCriteriaf16 = "[Pin Code Number]=" & "'" & Me![Resident Pin Code Number] & "'" And ID = "& [Guest And Service Entry subform].form.ID & """
'stLinkCriteriaf16 = "[Pin Code Number]=" & "'" & Me![Resident Pin Code Number] & "'" And ID = "&[Guest And Service Entry subform].form.ID & """
'stLinkCriteriaf16 = "[Pin Code Number]=" & "'" & Me![Resident Pin Code Number] & "'"
DoCmd.OpenReport stDocNamef16, acViewPreview, , stLinkCriteriaf16
'******************************
Else
End If
Else
End If
End Sub
Dejame darte más detalles, Pin Code Number esta en la forma principal y Resident Pin Code Number esta en el subformulario. Gracias nuevamente...
Allí esta el problema el código se tiene que ejecutar cuando le doy click a un campo del record en la subforma.
Bueno disculpa, fue error mio, me habías dicho que estabas en el subformulario, y yo te mande como si estuvieras haciendo desde el formulario huyyyyy ..
Bueno entonces debes colocar así:
stLinkCriteriaf16 = "[Pin Code Number]='" & Me![Resident Pin Code Number] & "' And ID = " & ID & ""
Como puedes ver se quita esta parte:
[Guest And Service Entry subform].form
Si necesitas invocar desde el subformulario un campo del formulario que lo contiene debes hacer esto:
Forma1.Nombre = "tal cosa"
Att:telemaco
Beno, claro que veo muchas comillas, ademas acuérdate que hay que tener en cuanta el tipo de datos en las tablas porque para un valor de texto a que abrir y cerrar con comillas sencillas, ahora se supone que los datos son numéricos como puedo ver debería quedar así:
stLinkCriteriaf16 = "[Pin Code Number]='" & Me![Resident Pin Code Number] & "' And ID = " & [Guest And Service Entry subform].form.ID & ""
Creo que le dsite más comillas de las que eran, ademas este código lógicamente se debe ejecutar desde el formulario y no subformulario para que funcione...
Si con esto nada te propongo algo, mandame las tablas y el formulario e informe los reviso y te los devuelvo con el arreglo.
Att:telemaco
Creo que casi lo tenemos ahora sale un encasillado preguntando ID.
Mil Gracias amigo, EXCELENTE...
El error que me dices se debe a que no existe ese campo en el reporte o se llama diferente, mira en el reporte en la caja que lo contiene revisa bien como se llama (aveces le colocan el nombre de la tabla, punto, el nombre del campo) ... ese es el error.
Att:telemaco

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas