Hej !! Tänker mig en lösning enl denna princip Hej, Enklast är att skapa ett unit index i databasen. Då är det omöjligt att skapa en dublet. Det kommer inte gå utan orsaka ett felmeddelande. Dessutom ger bättre prestanda vis sökningar. Index är förvisso bra, av prestanda skäl, men inte för att kolla om en post finns. Det är bättre att kolla först, snarare än att försöka och sedan hantera eventuella fel. Varför skapa ett fel när man inte måste?Hur kan man kolla om en post finns i en databas?
I mitt fall, så finns ett antal poster, alla med ett unikt nummer (lghNr)i en databas. Jag vill kolla om detta nummer verkligen är unikt och inte finns förut i databasen, innan posten skall sparas. Tänkte lägga detta i händelsen LostFocus i fältet txtlghNr (fältet där det unika numret skrivs in av användaren)
Databasen heter Filmer.mdb och tabellen heter Hylla5
tack på förhand !!Sv: Hur kan man kolla om en post finns i en databas?
<code>Data1.Recordset.FindFirst ("lghNr = " & txtlghNr.Text)</code>
sen kollar du om det blev någon träff.
Det var ett tag sedan jag använde DataKontroller.Om du då har en Label också kopplad
till denna databas och detta fält bör Label:n uppdateras med FindFirst data.
Label:n kan vara Visible = False. På nästa rad kollar du
<code>
If Len(Label.Caption) Then
MsgBox "idNr finns redan"
Label.Caption = ""
End If
</code>
Det finns nog ett smartare sätt att kolla träff men jag kommer inte på det nu.Sv:Hur kan man kolla om en post finns i en databas?
Svens lösning är bra och sannolikt den enklaste om du har en liten databas. Dock förutsätter den att du laddar hela ditt recordset med all data från den aktuella tabellen, varför den blir långsam om databasen växer.
Su kan iistället köra motsvarande fråga i databasen med ett enkelt sql anrop. Nu var det ett tag sedan jag jobbade med access så den exakta syntaxen har jag inte, men du kan i princip använda något i stil med:
<code>IF EXIST(SELECT lghNr FROM MinTabell WHERE lghNr = 38)</code>
Då får du ett tomt recordset om lägenhetsnumret saknas vilket gör dels att du inte skyfflar en massa data från databasen till ditt recordset i onödan, samtidigt som sökningen går snabbare eftersom den sker i databasen och inte i din kod.
Men som sagt, detta är lite överkurs kanske och mest nytta har du av det om duin databas blir stor.
Lycka till!
// JohanSv: Hur kan man kolla om en post finns i en databas?
Sv:Hur kan man kolla om en post finns i en databas?
Förresten kan man visst ha dubletter om man har index. Snarare är det egenskapen om det är unikt eller inte som styr om man kan ha dubletter.
// Johan