Duplicate record vinden

Status
Niet open voor verdere reacties.

mvdkooij

Gebruiker
Lid geworden
30 mrt 2007
Berichten
52
Hallo allemaal,

Ik kom er niet uit ... wie kan me helpen met het volgende:

In tabel "tblVOP_Actie" wil ik data opslaan in veld "VOP". Er mogen geen duplicaten in voorkomen en daar moet het systeem zelf op checken als ik op de eigengemaakt knop OK druk.
Indien er geen duplicaat is moet het record gesaved worden, maar als er wel een duplicaat wordt gevonden dan moet eerst het oude record verplaatst worden naar "VOP-archief" en dan mag het nieuwe record opgeslagen worden.

Dit heb ik tot nu toe, maar ik kom niet uit de IF-statement:

Code:
If [COLOR="red"]<er een duplicaat is>[/COLOR] then

sSQL = "INSERT INTO [tblVop_Actie_Archief]" & _
        "SELECT * FROM [tblVOP_actie]" & _
         "WHERE [VOP] = forms!VOP AND WHERE [VOP] = forms!VOP";
ELSE
    DoCmd.Close
 
Laatst bewerkt:
Er even vanuitgaande dat je per abuis een dubbele check op VOP hebt ingebouwd in de SQL, en dat VOP een numeriek veld is, zou het zo kunnen:

Code:
sSQL = "SELECT * FROM [tblVOP_actie] WHERE [VOP] = " & Me.VOP
With CurrentDb.OpenRecordset(sSQL)
    If .RecordCount = 0 Then
        sSQL = "INSERT INTO [tblVop_Actie_Archief] " & _
            "SELECT * FROM [tblVOP_actie] WHERE [VOP] = " & Forms!VOP
        DoCmd.RunSQL sSQL
    Else
        MsgBox "Dit record bestaat al...", vbOKOnly
    End If
    .Close
End With
 
Thanks!
Alleen onderstaand stukje pakt ie niet ....Ik moet een parameterwaarde opgeven.
Het gedeelte '" & Forms!VOP' werkt wel want die waarde zie ik daar bij staan, maar [VOP] herkent ie niet.


Code:
    "SELECT * FROM [tblVOP_actie] WHERE [VOP] = " & Forms!VOP
 
Daarom had ik Forms!VOP vervangen door Me.VOP... Maar dus nog niet overal ;)
 
Code:
"SELECT * FROM [tblVOP_actie] WHERE [vop] = " & Me.VOP

heb ik gedaan, maar nog steeds het probleem dat ik zelf een parameterwaarde moet invullen.
Of bedoelde je wat anders?
 
Dat duiidt er toch op dat hij het veld vop niet kan vinden. Eerst dus maar the bloody obvious: zit er in de [tblVOP_actie] wel een veld [vop]? En heb je op je formulier wel een tekstveld vop?
 
Hi Michel,

Ja dat bestaat .... als ik in VBA begin te typen "me." dat komt hij zelf met de optie VOP en ook het veld bestaat.
Dus het is aanwezig, alleen is de syntax niet goed denk ik. Ergens een & te weinig of een " of een ' te veel?
 
Laatst bewerkt:
Heb je het over een numeriek veld, dan klopt de code wel. Is het een tekstveld, dan moet je deze variant gebruiken:

Code:
"SELECT * FROM [tblVOP_actie] WHERE [vop] = [B][COLOR=red]'[/COLOR][/B]" & Me.VOP & "[B][COLOR=red]'[/COLOR][/B]"
 
Haha ik zie nu pas in je eerste reply dat je het over een numeriek veld had. Ik wist dat er iets met die tekens was maar nu werkt het super!

Heel erg bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan