En databas som rymmer info om lediga lägenheter stegas fram med kommandot Data1RecordSet.MoveNext osv. Vissa lägenheter är disponibla och dessa har värdet True via en check kontroll kopplad till databasen. Programmet startar och första posten visas om chkDisponibel = True. Efter den första posten stegar sedan en timer vidare i databasen och skall visa poster som är disponibla. När databasen har kommit till sista posten, skall den gå vidare till första posten och fortsätta sin loop i databasen. Måste du ha alla posterna i ditt dataset? Kan du inte filtrera bort dem redan när du hämtar dem ifrån databasen? På så sätt blir det mindre data att hantera och mycket enklare att skriva koden för det. Hej och tack för hjälpen !!Stega fram databas med vissa konditioner
Jag har återupptagit min programmering efter c:a 10 års uppehåll så jag är lite "ringrostig" .. och behöver hjälp.
Jag har kommit en bit, men har problem med att inte visa poster som har värdet False samtidigt som som programmet skall "hoppa" till disponibla poster, alltså till poster som har kontrollen chkDisponibel = True.
Kan någon hjälpa mig så vore et toppen .. Skickar här med koden som fungerar skapligt men inte helt.
========================================================================
Private Sub Form_Activate()
'Räkna poster i databsen och går till första posten
Data1.Recordset.MoveLast
lblAntPoster = Data1.Recordset.RecordCount
Data1.Recordset.MoveFirst
' Kontrollerar om det är sista posten i tabellen (via en "snillrikt" lösning !!??
s:
If chkDisponibel = False And lblLopNr = lblAntPoster Then
Data1.Recordset.MoveFirst
End If
If chkDisponibel = False Then
Data1.Recordset.MoveNext
End If
'Ladda sökvägar till bilderna
imgPlanLosning.Picture = LoadPicture(lblBildPlanLosning)
'laddar en bildväxlare typ PowerPoint-visning med bilder
Set MFader1.Picture = LoadPicture(lblBildExt)
MFader1.Effect = [Vertical Stripes]
MFader1.Go
Set MFader1.Picture = LoadPicture(lblBildInt)
MFader1.Effect = [Vertical Stripes]
MFader1.Go
Set MFader1.Picture = LoadPicture(lblBild_X1)
MFader1.Effect = [Vertical Stripes]
MFader1.Go
Set MFader1.Picture = LoadPicture(lblBild_X2)
MFader1.Effect = [Vertical Stripes]
MFader1.Go
'OK
If lblLopNr = lblAntPoster Then
Data1.Recordset.MoveFirst
GoTo s
Else
Data1.Recordset.MoveNext
GoTo s
End If
End Sub
=========================================================================Sv: Stega fram databas med vissa konditioner
Sv: Stega fram databas med vissa konditioner
Hej, du använder en data-kontroll med bundna kontroller, jag har alltid ogillat dem och har därför ingen hundra koll på hur de fungerar, följande är dock en lite "renare" kod som använder data-kontrollen.
<code>
Private Sub Form_Activate()
do
do while not Data1.Recordset.eof
if Data1.Recordset("Disponibel") = true then
'Ladda sökvägar till bilderna
imgPlanLosning.Picture = LoadPicture(Data1.Recordset("BildPlanLosning"))
'laddar en bildväxlare typ PowerPoint-visning med bilder
Set MFader1.Picture = LoadPicture(Data1.Recordset("BildExt"))
MFader1.Effect = [Vertical Stripes]
MFader1.Go
Set MFader1.Picture = LoadPicture(Data1.Recordset("BildInt"))
MFader1.Effect = [Vertical Stripes]
MFader1.Go
Set MFader1.Picture = LoadPicture(Data1.Recordset("Bild_X1"))
MFader1.Effect = [Vertical Stripes]
MFader1.Go
Set MFader1.Picture = LoadPicture(Data1.Recordset("Bild_X2"))
MFader1.Effect = [Vertical Stripes]
MFader1.Go
end if
Data1.Recordset.movenext
loop
Data1.Recordset.movefirst
loop
End Sub
</code>
istället för att använda de bundna kontrollerna så hänvisar jag till kolumnnamnet i recordsetet istället
Data1.Recordset("kolumnnamn")
Du får ändra i dessa så att de passar kolumnerna i din tabell..
Den bästa lösningen hade varit att strunta i datakontrollen och göra ditt recordset själv, finns nog någon grundkurs här på pellesoft hur man gör.. Där kan du specificera vilka poster som skall med i recordsetet med hjälp av en liten fråga:
"Select * from tabell where Disponibel = true"
om detta görs kan du ta bort if-satsen som kollar om disponibel=true..
lycka till... Har inte haft möjlighet att testa mitt förslag men i mina trötta tankar så borde det fungera.. :)Sv:Stega fram databas med vissa konditioner
Det funkade perfekt efter dina föreslagna ändringar .. KANON !! Jag har fler frågor men återkommer med dom lite senare !!
/Arne