Visual basic access

Necesito saber como decir en VB a la hora de guardar un registro en una tabla de access, que lo guarde siempre y cuando NO exista ya. Es decir, antes de guardar el registro, debe verificar si existe o no. En caso de no existir lo debe guardar, pero si existe con anterioridad mostrará un mensaje. Para ello utilizo un campo de la tabla que es la clave principal y no se puede repetir y quiero basar dicha condición en ese campo (IdRegistro).

1 respuesta

Respuesta
1

Primero debes hacer una Consulta SQL (SELECT) con el "filtro" de que busque el ID, Folio o no se cual campo es único en tu BD, y si lo encuentra que te avise que ya existe.

¿O cómo haces para guardar?

Este es el procedimiento que tengo para guardar, pero en la actualidad me guarda todo, incluso cuando el registro ya existe. En el formulario "Albarán" tengo un campo que es "IdAlbaran" que coincide con el campo de la tabla "Albaranes". Debido a que en la tabla el campo IdAlbaran NO se puede repetir, el programa muestra un error al estar repetido, pero quiero controlar el guardarlo o no por procedimiento y no por un error del propio Access. Sobre tu respuesta, no se muy bien hacer la consulta Select.

Muchas gracias por tu interés.

ProcedimientodelbotónGuardar.

Private Sub GuardarAl_Click()
Dim por As Database, registros As Recordset
Dim mirecorset As Recordset
Dim sql As String
Set por = CurrentDb
Set registros = por.OpenRecordset( Albaranes , dbOpenDynaset)
registros.AddNew
registros( IdAlbaran ) = Forms![Albarán]!IdAlbaran
registros( FechaAlb ) = Forms![Albarán]!Fecha
registros( Cliente ) = Forms![Albarán]!IdCliente
registros( BaseImponible ) = Forms![Albarán]!BIAlb
registros( Descuento ) = Forms![Albarán]!DsctImpo
registros( TotalAlb ) = Forms![Albarán]!TotalAlb
nes , [IdAlbaran]=[forms]![Albarán]![IdAlbaran] then
registros.Update
End Sub

Hace mucho que no uso VB6 pero creo que debe ser aquí la consulta:

Set registros = por.OpenRecordset( Albaranes , dbOpenDynaset)

Cambia lo que esta en Negritas por algo así:

SELECT IdAlbaran FROM Albaranes WHERE IdAlbaran=Variable

Variable seria, valga la Redundancia, la Variable donde guardarías el ID que quieres validar si existe o no.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas