Preguntar si existe un registro en access

Hola, mira tengo es te codigo que busca si existe un codigo en mi tabla pero no se como preguntar si existe o no para mostrar el mensaje que diga que el codigo introducido no existe, como debo hacer eso?
strsql = "Select PRODUCTO, CODIGO " & _
"from PRODUCTOS where CODIGO = '" & Me.txtcodigo.Text & "'"
Set rsconsulta = CurrentDb.OpenRecordset(strsql)
2

2 respuestas

Respuesta
1
Olvídate del código que tienes. Haz lo siguiente:
1.- Saca las propiedades de cuadro de texto txtcodigo. Te vas a la pestaña Eventos -> Después de actualizar, y le generas el siguiente código:
...
Private Sub ...
Dim vIntro As String
Dim vTabla As Variant
vIntro = nz(me.txtcodigo.value,"")
If vIntro="" then Exit Sub
vTabla=dlookup("[CODIGO]", "PRODUCTOS", "[CODIGO]='" & vIntro & "'")
If isnull(vTabla) Then
MsgBox "El código introducido no existe",vbInformation,"AVISO")
Exit Sub
End If
End Sub
...
Respuesta
1
dim sel as string
dim codigo_a_buscar as string
' En "filtra", haz una función que quite todos los caracteres que puedas que no se vayan a usar como código... para que no te hagan sql injections
codigo_a_buscar=filtra(Me.txtcodigo.Text)
sel="select count (producto) as numero_de_coincidencias from productos where codigo= '" & codigo_a_buscar & "'"
dim db as database
dim coincidencias as integer
set db=currentdb
dim rs as recordset
set rs=db.openrecordset(sel)
if rs.recordcount>0 then
  if isnumeric(rs.fields("numero_de_coincidencias")) then
           coincidencias= rs.fields("numero_de_coincidencias")
  end if
end if
Rs. Close
Si coincidencias>0, es que hay un producto con ese código. Hay otra manera más rápida (de escribir me refiero) de hacerlo, pero esta te funcionará en cualquier motor de base de datos que uses con access como interface

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas