varios una tabla registros registro otra nuevo into insertar ingresar formulario ejemplo desde datos consultas como anexar agregar access-vba ms-access-2010

access-vba - una - insertar registros en access desde formulario



Access 2010: compruebe los datos en el conjunto de registros antes de agregar un nuevo registro (2)

Acabo de escribir este código para recrear tu situación y funcionó bien. Solo necesita cambiar el nombre de sus columnas y su tabla en la consulta.

Dim strSQL As String Dim qdf As QueryDef ''if these columns are not text change to approriate type strSQL = "PARAMETERS [NameToCheck] Text(255),[CityToCheck] Text(255),[Zip] Text(255); " ''change table name and column names here strSQL = strSQL & "SELECT Count(*) FROM address " _ & "WHERE FName = [NameToCheck] AND City = [CityToCheck] AND ZipCode = [Zip];" Set qdf = CurrentDb.CreateQueryDef("", strSQL) qdf("NameToCheck") = txtName.Value ''change to that textfield on form qdf("CityToCheck") = txtCity.Value ''change to that textfield on form qdf("Zip") = txtZipCode.Value ''change to that textfield on form If qdf.OpenRecordset(dbOpenSnapshot)(0) > 0 Then MsgBox "This record is already in the database" Else ''Insert statement goes here. End If

Soy nuevo en Access así que tengan paciencia aquí.

Tengo un formulario que me permite agregar nuevos datos a una tabla

ID | Name | City | Zip Code 1 | John | Newark | 12340 2 | Alex | Boston | 98760

Y así sucesivamente ...

Antes de proceder a agregar un nuevo registro con los campos de datos anteriores, necesito crear un cheque que observe la tabla para determinar si ya existen las combinaciones de Nombre, Ciudad y Código postal. Si lo hacen, quiero que salga de Sub; De lo contrario, continúe con el resto de la macro.

He estado buscando construir esto usando alguna forma del comando OpenRecordset, pero no estoy seguro por dónde comenzar. ¿Alguien me puede apuntar en la dirección correcta? ¡Gracias!


Si desea usar los conjuntos de registros como lo solicitó, deberá usar una declaración de SQL para seleccionar todo o usarlo para buscar algo por su nombre.

Dim myR as Recordset Dim strSQL as String ''run a SQL statement to select a record with the same info strSQL = "SELECT [Name], [City], [Zip Code] FROM table_name_here " & _ "WHERE [Name] = ''" & form_control_name & "'' " & _ "AND [City] = ''" & form_control_city & "'' " & _ "AND [Zip Code] = ''" & form_control_zip & "''" ''set your recordset to the SQL statment Set myR = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset) ''if your count is greater than 0, then you''ll have a duplicate If myR.RecordCount > 0 then MsgBox "This already exists" Else MsgBox "All clear" End if Set myR = Nothing