Por favor necesito ayuda con INSERT INTO, para access 2003 varias tablas

Disculpe pero ya es urgente su ayuda este tema lo he preguntado varias veces sin tener respuesta, necesito crear un código que inserte dato en varias tabla.

1 respuesta

Respuesta
1

Prueba con este código:

...

Private Sub...
Dim vDato As Variant
Dim miSql As String
DoCmd.SetWarnings False
vDato = "El dato a insertar"
miSql = "INSERT INTO Tabla1(nombreCampo) VALUES ('" & vDato & "')"
DoCmd.RunSQL miSql
miSql = "INSERT INTO Tabla2(nombreCampo) VALUES ('" & vDato & "')"
DoCmd.RunSQL miSql
DoCmd.SetWarnings True
MsgBox "Datos insertados correctamente", vbInformation, "OK"
End Sub

...

Lógicamente debes sustituir Tabla1/2 y nombreCampo por los valores que tú tengas en tu BD.

Ya me dirás qué tal.

sabe tengo un error en la segunda tabla me puedes dar una idea que puede ser gracias

Private Sub ingreso_Click()
Dim vDato As Variant
Dim miSql As String
DoCmd.SetWarnings False
vDato1 = Me.txtcomodato
vDato2 = Format(Me.txtFechaInicio, "dd/MM/yyyy")
vDato3 = Format(Me.txtFechaTermino, "dd/MM/yyyy")
vDato4 = Me.txtDecreto
vDato5 = Format(Me.txtFechaDecreto, "dd/MM/yyyy")
vDato6 = Me.txtOcupacionPropiedad
vDato7 = Me.txtrut
miSql = "INSERT INTO comodato (IdComodato, fechaInicio, FechaTermino, Decreto, FechaDecreto, OcupacionPropiedad, rut) " & _
" VALUES ('" & vDato1 & "', '" & vDato2 & "', '" & vDato3 & "', '" & vDato4 & "', '" & vDato5 & "', '" & vDato6 & "', '" & vDato7 & "')"
DoCmd.RunSQL miSql
vDato8 = Me.txtpropiedad
vDato9 = Me.txtFojas
vDato10 = Me.txtNumeroFojas
vDato11 = Me.txtAñoFojas
vDato12 = Me.txtSUPERFICIE
vDato13 = Me.txtNORTE
vDato14 = Me.txtSUR
vDato15 = Me.txtESTE
vDato16 = Me.txtOESTE
vDato17 = Me.txtAdquisicionPropiedad
vDato18 = Format(Me.txtFechaAdquisicionPropiedad, "dd/MM/yyyy")
vDato19 = Me.txtDestinoPropiedad
vDato20 = Me.txtDireccionPropiedad
vDato21 = Me.txtLote
vDato22 = Me.txtPoblacion
vDato23 = Me.txtNumeroDireccion
vDato24 = Me.txtObservacion
miSql = "INSERT INTO propiedad (IdPropiedad, Fojas, NumeroFojas, AñoFojas, SUPERFICIE, NORTE, SUR, ESTE, " & _
" OESTE, AdquisicionPropiedad, FechaAdquisicionPropiedad, DestinoPropiedad, " & _
" DireccionPropiedad, Lote, Poblacion, NumeroDireccion, " & _
" Observacion,) VALUES ('" & vDato8 & "', '" & vDato9 & "', '" & vDato10 & "'," & _
"'" & vDato11 & "', '" & vDato12 & "', '" & vDato13 & "', '" & vDato14 & "', '" & vDato15 & "', '" & vDato16 & "', ," & _
"'" & vDato17 & "', '" & vDato18 & "', '" & vDato19 & "', '" & vDato20 & "', '" & vDato21 & "', " & _
"'" & vDato22 & "', '" & vDato23 & "','" & vDato24 & "' )"
DoCmd.RunSQL miSql
DoCmd.SetWarnings True
MsgBox "Datos insertados correctamente", vbInformation, "OK"
End Sub

disculpa la molestia pero ya no se que hacer ya que no es lo único que me falla... gracias de antemano.

" Observación,)

Sobra la coma detrás de Observación.

Al menos eso es lo que, en un vistazo rápido, veo mal.

en el blog ;)

si realmente es una mala coma mejor dicho 3, disculpa como lo puedo hacer cuando los datos están relacionada con otra tabla y en el formulario aparece solo su descripción y no el código???, disculpa por molestarte pero es urgente y ya voy por el segundo día sin dormir buscando soluciones, gracias de antemano...

No acabo de entender tu pregunta. ¿Me pones un ejemplo con detalles, please?

vDato12 = Me.txtpropiedad
vDato13 = Me.txtFojas
vDato14 = Me.txtNumeroFojas
vDato15 = Me.txtAñoFojas
vDato16 = Me.txtSUPERFICIE
vDato17 = Me.txtNORTE
vDato18 = Me.txtSUR
vDato19 = Me.txtESTE
vDato20 = Me.txtOESTE
vDato21 = Me.txtAdquisicionPropiedad
vDato22 = Format(Me.txtFechaAdquisicionPropiedad, "dd/MM/yyyy")
vDato23 = Me.txtDestinoPropiedad
vDato24 = Me.txtDireccionPropiedad
vDato25 = Me.txtLote
vDato26 = Me.txtPoblacion
vDato27 = Me.txtNumeroDireccion
vDato28 = Me.txtRolAvaluo
vDato29 = Me.txtObservacion

vDato30 = txtTipo

vDato31 = txtestado

miSql = "INSERT INTO propiedad (IdPropiedad, Fojas, NumeroFojas, AñoFojas, SUPERFICIE, NORTE, SUR, ESTE, " & _
"OESTE, AdquisicionPropiedad, FechaAdquisicionPropiedad, DestinoPropiedad, " & _
"DireccionPropiedad, Lote, Población, NumeroDireccion, RolAvaluo, " & _
"Observación, IdComodato) VALUES ('" & vDato12 & "', '" & vDato13 & "', '" & vDato14 & "', " & _
"'" & vDato15 & "', '" & vDato16 & "', '" & vDato17 & "', '" & vDato18 & "', '" & vDato19 & "', '" & vDato20 & "', " & _
"'" & vDato21 & "', '" & vDato22 & "', '" & vDato23 & "', '" & vDato24 & "', '" & vDato25 & "', " & _
"'" & vDato26 & "', '" & vDato27 & "', '" & vDato28 & "', '" & vDato29 & "', '" & vDato1 & "' )"

los que pasa que los datos vDato30 y 31 en el formulario están por su descripción y no por el codigo y deben ser almacenado por cogido en la tabla propiedad, disculpa las molestias pero no sabes sufro con todo esto, de antemano gracias

Voy a suponer que tienes una tabla que se llama TTipo, y que como mínimo tiene dos campos, que son:

[IdTipo]

[DescripTipo] -> Este valor es el que hipotéticamente te muestra txtTipo, según mi suposición.

Luego para buscar [IdTipo] tu línea de código para coger vDato30 debería ser:

vDato30= dlookup("[IdTipo]","TTipo","[DescripTipo]='" & txtTipo & "'")

Ahora vDato30 te devuelve [IdTipo], como querías.

La misma mecánica es aplicable a vDato31.

gracias te pasaste si resulto

discupa te puedo preguntar como se hace para de un combobox a una combo lista como se hace o si puedo generar otra consulta, es que tu ejemplo en la pagina esta al revés y realmente no lo entendí disculpa mi torpeza...

La mecánica de Todoexpertos, desde mi punto de vista, es "una consulta, una respuesta", básicamente porque si hay gente que tenga problemas relacionados con la consulta pueda detectarla por su título. Además, cada vez que cierras una pregunta la valoras: si tú me haces 10 preguntas en una sola consulta estoy perdiendo 9 valoraciones. Evidentemente es un tema que a mí me da exactamente igual, pero hay expertos que sí tienen muy en cuenta el tema de los puntos, y actitudes como la tuya, de pregunta tras pregunta tras pregunta, sientan muy mal.

Simplemente te ruego tomes lo anterior a título informativo, y no como recriminación. Lo de los puntos me da igual, pero lo de perder información para "futuros usuarios con problemas similares" ya no me es tan indiferente.

Para convertir un combo en un cuadro de lista basta que selecciones el combo y hagas click derecho. En el menú emergente tienes una opción que es "convertir a" -> Cuadro de lista.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas