sentencia query parametros macro ejecutar desde datos consultas consulta con sql ms-access access-vba append

query - sql y vba



Acceso a VBA: el nĂºmero de valores de consulta y los campos de destino no son los mismos (2)

Su cadena SQL se pasará al motor SQL que no sabe cómo interpretarme me!ComboProduct1 etc. Necesita insertar los valores de esas variables en la cadena:

Private Sub CmdAddtoProductionDetails_Click() Dim StrSql As String StrSql = "Insert Into test1 (ProductName, [Lot Number], ProductionDate, Quantity, Unit, Client)" & _ " Values( ''" & me! ComboProduct1 & "'', ''" & me! LotNoProduct1 & "'', #" & Format(me! txtDate, "yyyy/mm/dd") & "#, " & CStr(me! Product1Quantity) & ", ''" & me!ComboProduct1Unit & "'', ''" & me! ComboProduct1Client & "'' )" CurrentDb.Execute (StrSql) End Sub

Ponga comillas simples alrededor de las cadenas, pero no alrededor de los números. Algunos de sus campos no estaba seguro de si eran números o cadenas, lo adiviné. Debe tener cuidado con las fechas: compruebe que el motor SQL esté interpretando las fechas en el formato aaaa / mm / dd correctamente. Convertirá la cadena #2016/06/04# en una fecha automáticamente para usted.

Estoy tratando de agregar datos de un formulario de acceso a una tabla. Cuando ejecuté el código sql, recibí un mensaje de error que decía que "el número de valores de consulta y los campos de destino no son los mismos".

este es mi código:

Private Sub CmdAddtoProductionDetails_Click() Dim StrSql As String StrSql = "Insert Into test1 (ProductName, [Lot Number], ProductionDate, Quantity, Unit, Client) Values(me! ComboProduct1, me! LotNoProduct1, me! txtDate, me! Product1Quantity! me!ComboProduct1Unit, me! ComboProduct1Client)" CurrentDb.Execute (StrSql) End Sub


Un método más simple y directo es usar un conjunto de registros:

Private Sub CmdAddtoProductionDetails_Click() Dim rs As DAO.Recordset Set rs = CurrentDb.OpenRecordset("Select Top 1 * From test1") rs.AddNew rs!ProductName.Value = Me!ComboProduct1.Value rs![Lot Number].Value = Me!LotNoProduct1.Value rs!ProductionDate.Value = Me!txtDate.Value rs!Quantity.Value = Me!Product1Quantity.Value rs!Unit.Value = Me!ComboProduct1Unit.Value rs!Client.Value = Me!ComboProduct1Client.Value rs.Update rs.Close Set rs = Nothing End Sub