Access - Formulario de Entrada

 
Vista:

Formulario de Entrada

Publicado por Angel (51 intervenciones) el 06/12/2004 20:53:29
Hola y mil gracias desde ya. Tengo un formulario de entrada con varios campos. En ocaciones determinadas necesito crear no sólo una tupla con todos estos datos, sino más de de una... sucede que sólo debo modificar un sólo campo de los campos ingresados por primera vez. Mi intención es que el operador ingrese todos estos campos que se guarden y en caso de tener que cargar una nueva tupla con todos estos campos poder modificar sólo el campo diferente. De esta forma me no debería cargar dos veces los datos en común. Quisiera hacer un botón que me realice esta operación. Trabjo en Access XP.-
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Crear y modificar tuplas con campos comunes de forma eficiente

Publicado por Alejandro (4142 intervenciones) el 19/05/2023 20:16:30
Para lograr esto en Access XP, puedes utilizar una combinación de código VBA y consultas de actualización. A continuación se muestra una solución paso a paso:

1. Abre tu base de datos de Access y ve al formulario de entrada donde deseas implementar esta funcionalidad.
2. En el formulario, crea un botón y asigna el siguiente código VBA al evento "Al hacer clic" del botón:

```vba
Private Sub btnGuardar_Click()
Dim strSQL As String
Dim rs As DAO.Recordset
Dim campoComun As String
Dim campoDiferente As String

' Obtén los valores de los campos del formulario
campoComun = Me.txtCampoComun.Value
campoDiferente = Me.txtCampoDiferente.Value

' Crea una consulta de actualización para modificar los registros existentes
strSQL = "UPDATE NombreTabla SET CampoDiferente = '" & campoDiferente & "' WHERE CampoComun = '" & campoComun & "';"
CurrentDb.Execute strSQL

' Crea una consulta de inserción para agregar nuevos registros si no existen
strSQL = "INSERT INTO NombreTabla (CampoComun, CampoDiferente) SELECT '" & campoComun & "', '" & campoDiferente & "' WHERE NOT EXISTS (SELECT * FROM NombreTabla WHERE CampoComun = '" & campoComun & "');"
CurrentDb.Execute strSQL

' Actualiza el formulario
Me.Refresh
End Sub
```

Asegúrate de reemplazar "NombreTabla" con el nombre real de la tabla en la que deseas guardar los datos.

3. En el código, se asume que "txtCampoComun" es el nombre del campo común que no cambia y "txtCampoDiferente" es el nombre del campo que puede cambiar en cada tupla.
4. Guarda y cierra el editor de código VBA.

Cuando hagas clic en el botón "Guardar", el código VBA ejecutará consultas de actualización e inserción. Si el campo común ya existe en la tabla, se actualizará el campo diferente para ese registro. Si el campo común no existe, se insertará un nuevo registro con ambos campos.

Esto te permitirá ingresar los campos en común solo una vez y, si necesitas agregar otra tupla con el mismo campo común pero con un campo diferente, solo necesitarás ingresar el campo diferente y el código se encargará de actualizar o insertar los registros adecuados.

Espero que esta solución te sea útil. ¡Buena suerte con tu aplicación en Access XP!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar