20. november 2005 - 20:58Der 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"
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
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.
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.
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
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.
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.