Mostrar datos de un formulario a otro formulario

Soy yo de nuevo!
Antes quiero agradecer toda la ayuda brindada!
Lo que quiero hacer es lo siguiente, tengo un formulario con un cuadro de texto, pero necesito que el usuario no digite los datos (ejemplo un numero de factura)sino, que lo seleccione a partir de un formulario activo que tiene el numero de factura que el va ingresar (en el caso de generar un recibo por la factura) Podrías por favor darme un norte, si te es posible
Respuesta
1
Reponse:
Creo que lo que necesitas es sincronizar dos formularios. El ejemplo esta basado en northwind.mdb que es la versión americana de neptuno.mdb:
1.- Formulario ProductsList basado en la tabla Products, Formato Formularios en continuo (también puede ser simple), se colocan solo los campos ProductName, QuantityPerUnit y UnitPrice. Digamos que este va a ser el sincronizador. Evento Al activar registro:
Private Sub Form_Current()
'si el ProductName esta en blanco, entonces exit the Sub.
If IsNull(Me![ProductName]) Then
Exit Sub
End If
'Dimension variables.
Dim FormName As String, SyncCriteria As String
Dim F As Form, RS As Recordset
'ajustar el nombre del formulario que queremos sincronizar
FormName = "frmSyncForm2"
'Check para ver si está abierto frmSyncForm2. Y sino, abrirlo.
If Not SysCmd(acSysCmdGetObjectState, acForm, FormName) Then
DoCmd.OpenForm FormName
End If
'Define the form object and Recordset object for
'the Products form.
Set F = Forms(FormName)
Set RS = F.RecordsetClone
'Aquí usamos ProductName como campo para sincronizar, puede ser cualquier otro.
SyncCriteria = BuildCriteria("ProductName", dbText, _
Me!ProductName)
'Synchronize the corresponding record in the Products form to
'the current record in the subform.
RS.FindFirst SyncCriteria
'If a record exists in the Products form, find the
'matching record.
If RS.NoMatch Then
MsgBox "No match exists!", 64, FormName
Else
F.Bookmark = RS.Bookmark
End If
End Sub
2.- Formulario frmSyncForm2, este será el sincronizado. Añadimos los mismos campos que en el otro formulario más algunos otros. En este solo nos aseguramos de que se intoduzca un nombre para el Producto y una rutina de error:
Private Sub Form_BeforeUpdate(Cancel As Integer)
' Display a message box that says that product name is required.
Dim strMsg As String, strTitle As String
Dim intStyle As Integer
If IsNull(Me![ProductName]) Then
strMsg = "You must enter a product name before you leave the record." ' Define message.
intStyle = vbOKOnly + vbInformation ' Define buttons.
strTitle = "Product Name Required" ' Define title.
MsgBox strMsg, intStyle, strTitle
DoCmd.CancelEvent
End If
End Sub
Private Sub Form_Error(DataErr As Integer, Response As Integer)
' Suppress Microsoft Access error message and display custom message
' in BeforeUpdate event of form if user attempts to leave
' record without entering a value in ProductName field.
Const conValueRequired = 3314
If DataErr = conValueRequired Then
Response = acDataErrContinue
End If
End Sub
NOTA: los dos formularios están basados en la tabla Products, aunque usando BuilCriteria no creo que haya problema en hacer la sincronización con tablas diferentes. Es posible que lo que busque sea más simple que lo que te he expuesto, en ese caso, ya sabes ... aunque ahí son la 1:26 pm aquí es hora de cenar.
Disculpas, creo que hay un método más simple, y es usando el asistente para botones de comando:
Seleccionas Operaciones con formularios - Abrir formulario
Seleccionas el formulario que quieres abrir
Y en el tercer paso marcas "Abrir el formulario y buscar los datos específicos que se van a mostrar"
En el cuarto paso veras dos listas para seleccionar los campos que contienen datos coincidentes. Si los dos forms están basados en la misma tabla/consulta o en diferentes, pero que estén Relacionadas, todo ira bien.
El código que nos coloca el asistente viene a ser así:
Private Sub Comando2_Click()
On Error GoTo Err_Comando2_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "Clientes"
stLinkCriteria = "[IdCliente]=" & "'" & Me![IdCliente] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_Comando2_Click:
Exit Sub
Err_Comando2_Click:
MsgBox Err.Description
Resume Exit_Comando2_Click
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas