Hej Hej Kanon jag skall testa den lite senare i kväll jag hör av mig. Jag har kört fast här är mitt rs och jag la in koden från er men får det inte att funka så bra vad gör jag för fel? Du kan göra filtreringen i frågan om du har det uptagna tiderna i en tabell. Vet inte hur din datastruktur ser ut. Men om vi säger tabellen med uptagna tider heter Bokningar: HejFörslag på en funktion!
Jag vill göra en funktion som dels hämtar värden till en ex,combobox
och sen kör en sql fråga mot databasen det som sen skall göras är att
olicka värden i comboboxen skall tasbort som stämmer överens med recordsetet.
Är det kanske någon som kan ha en ide hur man skall göra.
exempel
om comboboxen är laddad med
07:00
08:00
09:00
10:00
men tiden 08:00 och 10:00 finns registrerade i databasen
så skall 08:00 och 10:00 tas bort ifrån comboboxen och bara visa
07:00
09:00
Mvh
TobbeSv: Förslag på en funktion!
Enligt den här principen
där rstider motsvarar ditt recordset som du loopar.
Private Sub Command1_Click()
Dim rsCount As Long, cboCount As Long, i As Long, j As Long
rsCount = rstider.ListCount - 1
cboCount = Combo1.ListCount - 1
For i = 0 To rsCount
For j = 0 To cboCount
If Combo1.List(j) = rstider.List(i) Then Combo1.RemoveItem j
Next 'j
Next 'i
End Sub
mvh
SvenSv: Förslag på en funktion!
Mvh tobbeSv: Förslag på en funktion!
Dim rsCount As Long, cboCount As Long, i As Long, j As Long
'mitt rs
Set rstider = dbs.OpenRecordset("select tid from Tider where Namn ='" & Combo1.Text & "' and Datum ='" & Text4.Text & "'")
Do Until rstider.EOF
List1.AddItem rstider!tid
rstider.MoveNext
Loop
'din kod
rsCount = rstider.ListCount - 1
cboCount = Combo2.ListCount - 1
For i = 0 To rsCount
For j = 0 To cboCount
If Combo2.List(j) = rstider.List(i) Then Combo2.RemoveItem j
Next 'j
Next 'i
Jag använder combo2 för alla tider och list1 för upptagna tider
är det så du har tänkt dig eller?
Mvh tobbeSv: Förslag på en funktion!
<code>
Dim fldTid as DAO.Field
Set rsTider = dbs.OpenRecordset("SELECT Tider.Tid" & vbCrLF & _
"FROM Tider LEFT JOIN Bokningar ON Tider.Namn = Bokningar.Namn AND Tider.Datum = Bokningar.Datum" & vbCrLF & _
"WHERE ((Bokningar.Datum Is Null) AND (Namn ='" & Combo1.Text & "') And (Datum ='" & Text4.Text & "'))", dbOpenForwardOnly)
Set fldTid = rsTider("Tid")
Do Until rstider.EOF
List1.AddItem fldTid
rstider.MoveNext
Loop
</code>Sv: Förslag på en funktion!
Jag förutsätter att du får första delen att funka dvs
List1 inhåller alla upptagna tider. Då blir det
Do Until rstider.EOF
List1.AddItem rstider!tid
rstider.MoveNext
Loop
rsCount = List1.ListCount - 1
cboCount = Combo2.ListCount - 1
For i = 0 To rsCount
For j = 0 To cboCount
If Combo2.List(j) = List1.List(i) Then Combo2.RemoveItem j
Next 'j
Next 'i
Sven