Access - Por qué no funciona??

 
Vista:

Por qué no funciona??

Publicado por JuanM (20 intervenciones) el 03/02/2007 15:50:04
Buenos Dias,

Tengo el siguiente problemita (Access 2003) , la función que esta abajo no realiza la inserción que quiero hacer, que tendré mal?? me pueden mostrar el código para hacer esto por favor, es que llevo patinando en el tema un buen rato!!!; otra cosa, esta misma función la podria utilizar para realizar eliminaciones y actualizaciones también cierto??, lo único que tendría que hacer para esos casos seria cambiar el query o estoy equivocado?

En la función hay 2 segmentos de código que en teoría hacen lo mismo, insertar, el primero de ellos esta antes de los asteriscos, y el segundo está entre asteriscos, lo que esta después de los segundos asteriscos lo colocó el asistente para formularios.

Esta inserción la estoy haciendo partiendo de unos datos que tomo de un subformulario y que de hecho estoy capturando en las variables porque el MsgBox me muestra dichos valores (Cómo hago para ver el código ejecutandose paso a paso, no me deja!!).

Estos datos tomados estan en dos TextBox y un ComboBox que se alimenta por medio de una consulta, otra cosita, creo que ya estoy preguntando mucho pero..., cómo hago para que los objetos del subformulario del que hablo se actualicen automaticamente con los cambios que se hacen en las tablas, por ejemplo, las inserciones que se hagan en la tabla tipos de pepa se muestren inmediatamente en el Combo mencionado anterioemente y que cuando haga eliminaciones, en los TextBox no se vea "#Eliminado" sino el registro siguiente.

Gracias y Mil Gracias por su ayuda!!!

Private Sub InsertaRefPepa_Click()
Dim rst1 As ADODB.Recordset

IdRefP = Forms!RefPepa.Form!IdRP
DRP = Forms!RefPepa.Form!DescP
DTP = Forms!RefPepa.Form!IdTipoP
MsgBox IdRefP & " - " & DRP & " - " & DTP

Set rst1 = New ADODB.Recordset

rst1.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\PRONALPLAST\PRONALPLAST.mdb;"
rst1.Open "RefPepa", , adOpenKeyset, adLockOptimistic, adCmdTable

With rst1
.AddNew
.Fields("IdRefPepa") = Forms!RefPepa.Form!IdRP '"1" 'IdRefP
.Fields("IdTipoPepa") = Forms!RefPepa.Form!IdTipoP '"1" 'DRP
.Fields("DescPepa") = Forms!RefPepa.Form!DescP '"Original" 'DTP
.Update
End With

rst1.Close
Set rst1 = Nothing

Forms!RefPepa.Form!IdRP.SetFocus
Forms!RefPepa.Form!IdRP = Empty
Forms!RefPepa.Form!DescP.SetFocus
Forms!RefPepa.Form!DescP = Empty
Forms!RefPepa.Form!IdTipoP.SetFocus
Forms!RefPepa.Form!IdTipoP = Empty
Forms!RefPepa.Form!IdRP.SetFocus
Forms!RefPepa.Form!IdRP = Empty
Forms!RefPepa.Form!IdRP.SetFocus

'''''*********************************************************************************
' Dim cmd1 As ADODB.Command
' Set cmd1 = New Command
'
' With cmd1
' .ActiveConnection = CurrentProject.Connection
' .CommandText = "INSERT INTO RefPepa(IdRefPepa, IdTipoPepa, DescPepa)" & _
' "VALUES('" & IdRP & "', '" & IdTipoP & "', '" & DescP & "')"
' .CommandType = adCmdText
' .Execute
' End With


''''''*********************************************************************************
''On Error GoTo Err_InsertaRefPepa_Click
''
''
'' DoCmd.GoToRecord , , acNewRec
''
''Exit_InsertaRefPepa_Click:
'' Exit Sub
''
''Err_InsertaRefPepa_Click:
'' MsgBox Err.Description
'' Resume Exit_InsertaRefPepa_Click

End Sub
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

Problema con inserción de datos y actualización automática de subformulario

Publicado por Alejandro (4142 intervenciones) el 02/08/2023 18:47:25
Buenos días, Juan.

Voy a responder a tus preguntas en orden:

1. Problema en la función de inserción:
El código de inserción que has compartido parece estar correcto en general. Sin embargo, es posible que haya un problema con la conexión a la base de datos o con los valores que estás intentando insertar. Para asegurarte de que el código funcione correctamente, te recomiendo verificar lo siguiente:

- Asegúrate de que la cadena de conexión sea válida y que la base de datos se encuentre en la ruta especificada.
- Verifica que los nombres de los campos en la tabla "RefPepa" sean correctos y coincidan con los nombres utilizados en el código.
- Comprueba que los valores de "IdRP", "IdTipoP" y "DRP" sean válidos y no estén nulos antes de intentar la inserción.

2. Ejecución paso a paso del código:
Para ver el código ejecutándose paso a paso, puedes utilizar el modo de depuración en el editor de VBA. Abre el editor VBA (presiona Alt + F11), selecciona el procedimiento "InsertaRefPepa_Click" y coloca el cursor dentro del código. Luego, presiona F8 para avanzar paso a paso por el código. Esto te permitirá observar cómo se ejecuta el código y verificar si hay algún error o comportamiento inesperado.

3. Actualización automática del subformulario:
Para que el subformulario se actualice automáticamente con los cambios en la tabla, asegúrate de que la propiedad "Origen del registro" (Record Source) del subformulario esté configurada correctamente para mostrar los registros actualizados. Normalmente, si el subformulario está vinculado a una consulta o tabla, debería actualizarse automáticamente.
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