Avisar si tres campos sean iguales

Tengo un problema con una base de datos de access 2010. Tengo una tabla que son empresas, en ella hay tres campos que son calle, numero y piso. Cuando en el formulario el usuario introduce empresas. Al poner la calle numero y piso me diga que esa empresa ya esta pero que me deje introducir igualmente la empresa ya que puede haber dos empresas o tres en una misma calle numero y piso

1 respuesta

Respuesta
1

En el evento "después de actualizar" del último campo (piso), le generas este código:

If DCount("*","NombreTabla","Calle='" & Nz(Me.Calle,"") & "' AND Numero=" & Nz(Me.Numero,-3.14) & " AND Piso=" & Nz(Me.Piso,-3.14))>= Then

Msgbox "Ya hay una empresa en esa dirección"

End If

Un saludo.


Cuando pongo el código :

If DCount ("*","Empresa","[Direcció (Si és de Blanes)]="& Nz(Me.[Direcció (Si és de Blanes)],"") & "AND Número=" & Nz(Me.Número, -3.14) & "AND Pis=" & Nz(Me.Pis, -3.14))>= Then

Me sale error de compilación: Se esperaba expresión

¿Qué puede faltar?

Te faltan las comillas simples en el campo dirección y algún que otro espacio en blanco antes de los "AND", y te falta el valor con el que comparar (fallo mío):

If DCount ("*","Empresa","[Direcció (Si és de Blanes)]='" & Nz(Me.[Direcció (Si és de Blanes)],"") & "' AND [Número]=" & Nz(Me.Número, -3.14) & " AND Pis=" & Nz(Me.Pis, -3.14))>0 Then

A ver así. Me dices.

Sigue fallando me sale el siguiente error

Tu campo "Pis" ¿está definido en la tabla como texto?. Si es así, la expresión sería:

If DCount ("*","Empresa","[Direcció (Si és de Blanes)]='" & Nz(Me.[Direcció (Si és de Blanes)],"") & "' AND [Número]=" & Nz(Me.Número, -3.14) & " AND Pis='" & Nz(Me.Pis, "") & "'")>0 Then

me sigue poniendo error el codigo que pongo es:

Private Sub Cuadro_combinado197_AfterUpdate()
If DCount("*", "Empresa", "[Direcció (Si és de Blanes)]='" & Nz(Me.[Direcció (Si és de Blanes)], "") & " AND Número='" & Nz(Me.Número, "") & " AND Pis='" & Nz(Me.Pis, "") & "'") > 0 Then
 MsgBox "Ja hi ha una empresa a aquesta direcció"
End If
End Sub

Y el error el siguiente:

Tienes mal las comillas simples:

Private Sub Cuadro_combinado197_AfterUpdate()
If DCount("*", "Empresa", "[Direcció (Si és de Blanes)]='" & Nz(Me.[Direcció (Si és de Blanes)], "") & "' AND Número=" & Nz(Me.Número, "") & " AND Pis='" & Nz(Me.Pis, "") & "'") > 0 Then
 MsgBox "Ja hi ha una empresa a aquesta direcció"
End If
End Sub

Cuando un criterio es de texto, tiene que ir entre comillas simples, y cuando es de tipo numérico, no, por ejemplo:

Direccion='Mi Direccion' AND Numero=9 AND Piso='4º'

En mi formulario los criterios de los tres son texto y me sigue dando error.

Perdona pero exactamente donde tienes que poner las comillas simples.

Lo siento por esta pregunta tan tonta pero es que programación la aprove por los pelos y ya ni me acuerdo de como funcionaba ;)

Te pongo la línea con las comillas simples separadas un espacio de las dobles y entre llaves, para que lo veas claro, pero en tu código, quita esos espacios y llaves. Supondré que el campo dirección y piso son de texto y número es numérico:

If DCount("*", "Empresa", "[Direcció (Si és de Blanes)]= {'} " & Nz(Me.[Direcció (Si és de Blanes)], "") & " {'} AND Número=" & Nz(Me.Número, "") & " AND Pis= {'} " & Nz(Me.Pis, "") & " {'} ") > 0 Then

Gracias pero el campo numero tiene que ser texto porque hay el campo numero más bis y el S/N

If DCount("*", "Empresa", "[Direcció (Si és de Blanes)]= {'} " & Nz(Me.[Direcció (Si és de Blanes)], "") & " {'} AND Número= {'} " & Nz(Me.Número, "") & " {'} AND Pis= {'} " & Nz(Me.Pis, "") & " {'} ") > 0 Then

En tu código quedará así:

Private Sub Cuadro_combinado197_AfterUpdate()
If DCount("*", "Empresa", "[Direcció (Si és de Blanes)]='" & Nz(Me.[Direcció (Si és de Blanes)], "") & "' AND Número='" & Nz(Me.Número, "") & "' AND Pis='" & Nz(Me.Pis, "") & "'") > 0 Then
 MsgBox "Ja hi ha una empresa a aquesta direcció"
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas