Avatar billede jind Nybegynder
20. november 2005 - 20:58 Der er 6 kommentarer og
1 løsning

Tjeke om en værdi findes i recordset

Hej Xperter,
Jeg har lavet to næsten ens tabeloprettelses qry's. De opretter den samme tabel.

Når jeg henter denne tabel via et recordset vil jeg gerne kunne hente tabellen med same kode skønt de to tabeller ikke er helt ens.

Er det muligt at tjekke om en værdi findes i et recordset før jeg henter den?

Jeg har prøvet med not isnull(RS!kolonne) men hvis "kolonne" ikke findes i tabellen der hentes, kommer der en fejl: "item can not be found in the collection corresponding to the requested name or ordinal"

Nogen ideer?
Avatar billede mugs Novice
20. november 2005 - 21:03 #1
Jeg er ikke sikker på hvad du mener, men du kan bruge denne VBA til at kontrollere, om en værdi findes i en tabel. Hvis tabellens felt1 matcher med formularens felt1 eksisterer posten jo i forvejen:

If DCount("*", "Tabel1", "[Felt1]= '" & Me.Felt1 & "'") >0 Then
msgbox "posten eksisterer"
else
Gør noget andet
end if
Avatar billede mugs Novice
20. november 2005 - 21:16 #2
Ovenstående gælder for et alfanumerisk felt. Er feltet numerisk skal du bruge denne:

If DCount("*", "Tabel1", "[Felt1]= " & Me.Felt1 & "") >0 Then
Avatar billede jind Nybegynder
20. november 2005 - 21:29 #3
Hej Mugs,
Undskylder at mit problem ikke fremgår mere tydeligt.

Jeg har lavet en kode som genererer et word-dokument og indsætter en masse værdier.
Lad os sige at det er en liste over chefer eller ansatte.
Navnene kommer fra to tabeller chefTbl og kuliTbl. I ChefTbl hedder navnefelter chefNavn og i kulitabellen kulinavn.
Hvis nu jeg ud fra en "make table" qry laver een tabel som hedder navnTbl.Her er de fleste oplysninger de samme om de kom fra KuliTBL eller ChefTbl (fx alder, køn mv). Kun navnefeltet hedder noget forskelligt afhængigt af om det er fra den ene eller anden tabel navnTbl laves ud fra.

Jeg vil nu hente oplysningerne fra navnTbl ind i mit recordset. Men da jeg jo har to forskellige kolonneoverskrifter for navnet kommer der ovenstående error hvis jeg fxkalder RS!ChefNavn og den underliggende tabel er en kulitable.

Er det nemmere at forstå nu?

VH
JOhannes
Avatar billede mugs Novice
20. november 2005 - 21:35 #4
OK - Jeg vil mene at du kun skal have eet felt med navnet uanset om det er en chef eller en kuli. Du kan så have f.eks et Ja/Nej felt der markerer, om personen er en chef eller kuli.

Du kna så lave en tilføjelsesforespørgsel der sender data fra de 2 tabeller ind i den 3. og lave en tilføjelse til Ja/Nej feltet i den ene opdateringsforespørgsel som herefter vil markere chef eller kuli.
Avatar billede hekla Nybegynder
20. november 2005 - 21:44 #5
Hvis du kan få den her til at virke, er den vist hurtigere en Domæne aggregat funktionen. Husk reference til DAO


    Dim DBS As DAO.Database
    Dim Rst As DAO.Recordset
   
    Set DBS = CurrentDb
    Set Rs = DBS.OpenRecordset("MinTabel")

Rs.MoveFirst
Do While Not Rs.EOF
    If Not isnull(Rs.Fields("kolonne")) Then
        GoTo Findes
    Else
        On Error GoTo FindesIkke, vb Information; Værdien findes
        Rst.MoveNext
    End If
Loop
exit sub

FindesIkke:
    MsgBox "Værdien findes ikke", vbCritical, "Værdien findes ikke"
Exit sub

Findes:
    MsgBox "Værdien findes", vbCritical, "Værdien findes"
...
Avatar billede jind Nybegynder
20. november 2005 - 22:22 #6
Mugs; det er ikke væsentligt om det er kulien eller chefen. jeg skal blot hente navnet. Men du gav mig en ide til at løse problemet. Idet jeg i analogi med ovenstående kan lave en test på om det er chef eller kulier der er tale om - din ide med ja/nej - og i denne test hente det relevante feltnavn.

Hekla, din vil sikkert også hjælpe men jeg har brug for min error handler andet sted.

Tak for hurtigt svar!
VH
Jind
Avatar billede mugs Novice
21. november 2005 - 04:47 #7
Tak for point :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester