dette giver medarbejdernr:
with currentdb.openrecordset("select * from <tabel> where <searchdato> >= startdato and <searchdato> <= slutdato")
while not .eof
debug.print !medarbejdernr
.movenext:wend:end with
"Der er syntaksfejl i FROM-delsætningen"
Kode: Private Sub Kommandoknap33_Click()
With CurrentDb.OpenRecordset("select * from <stamoplysninger> where <ret oplysninger pr> >= <oplysninger start> and <ret oplysninger pr> <= <oplysninger slut>")
While Not .EOF
Debug.Print !medarbejdernr
.MoveNext: Wend:
End With
End Sub
Du skal ikke bruge vinkelparentes omklamring - det er blot noget jeg tilføjede for at illustrere ting 'der skal hedde noget andet i virkeligheden'
Feltnavne, med mellemrum, som 'ret oplysninger pr', skal omklamres i kantparenteser.
Der kan være en god ide først at lave forespørgslen i databasevinduet->forespørgsler - chekke at resultatet er som ønsket og derefter bruge sql udtrykket i vba koden.
"Der er for få parametre, der var ventet 1"
kode: With CurrentDb.OpenRecordset("select * from stamoplysninger where [ret oplysninger pr] >= [oplysninger start] and [ret oplysninger pr] <= [oplysninger slut]")
While Not .EOF
Debug.Print !Medarbejdernummer
.MoveNext: Wend:
'ret oplysninger pr' er nok ikke et feltnavn så.
Hvis 'oplysninger start' og 'oplysninger slut' er feltnavne, skal du sammenligne med noget der kan konverteres til dato streng.
dato="4-1-2009" ' bemærk, 1. april, amerikansk dato: mm-dd-yyyy
sql = "select * from stamoplysninger where #" & dato & "# >= [oplysninger start] and #" & dato & "# <= [oplysninger slut]"
with currentdb.openrecordset(sql)
...
Nu ønsker man jo ofte en dato som parameter - indeholdt i en variabel eller et argument til funktion og denne vil, på datoer der kan mistolkes, på en computer med danske sproginstillinger, blive til en forkert datostreng overfor sql database funktionaliteten.
Derfor anvender jeg ofte denne funktion:
Function amrDate(dat As Date)
amrDate = "#" & Format(dat, "mm-dd-yyyy") & "#"
End Function
Der er noget vigtigt jeg har glemt at fortælle dig. De data der skal hentes frem i søgningen, skal hentes til en ubundet formular, så man ikke retter i den eksisterende record, men kun retter de ubundne data som til sidst bliver til en ny record i tabellen.
Jeg er ikke ekspert, men jeg ved at denne nye oplysning gør det en del sværere. Jeg kan sagtens smide flere point i, hvis det er nødvendigt. Er det noget du kan hjælpe mig med, eller er vi derude hvor vi må opgive?
Jeg har fået løst mit problem, men du må gerne få pointene for ihærdighed, hvis du smider et svar
Skriver ikke for at hjælpe men for at belyse - i #2, hvor lidt der skal til for at 'loop through recordset'
Generelt er det ikke interessant at en spørger har fået løst problemet, men hvordan.
Måden det er løst på, er at combo boxen "oplysninger pr", får rowsource fra den record hvor medarbejdernr matcher.
Med f.eks. [Oplysninger start] = [oplysninger pr].Column(2) i comboens afterupdate, henter man indhold frem til de ubundne felter
Hvad gør jeg med point?