Más sencillo aún, indexa la base de datos con un índice único (no hace falta que sea primario) sobre el campo que no quieres duplicar. Al grabar debería generar un error.
Lo de la doble consulta (una para ver si hay clave y otra para grabar si no la hay) es lento y puede ser, según como sea tu base y dónde esté ubicada, muy lento.
lo hice usando unos codigos antiguos de visual solo me fije en la idea y lo programe en
gambas el resultado es este
Dim Rgstemp as Result
Rgstemp = conexion32.$conexion.Exec(" select * from Producto where IDP ='" & ValueBox1.Text & "'")
If Rgstemp.Count = 0 Then
agregar = conexion32.$conexion.Exec("insert into Producto values ('" & ValueBox1.Text & "' , '" & TextBox2.text & "' , '" & ValueBox2.text & "' , '" & TextArea2.text & "' , '" & TextArea1.text & "' , '" & ValueBox3.text & "' , '" & ValueBox4.text & "' , '" & var & "' , '" & vardos & "')")
Message("Registro Guardado")
'Se cierra la conexion
Conexion32.$conexion.Close
Else
Message("Este Producto ya Existe ")
Endif
Endif
End
me funciona al 100%
mi pregunta es como hacer ahora para crear un menu o una presentacion del programa en el cual contenga los demas formularios!! entienden