Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Lösungsidee?

Begonnen von Xoar, August 29, 2011, 15:54:25

⏪ vorheriges - nächstes ⏩

DF6GL

Hallo,

warum muss das nun nebeneinander stehen und nicht untereinander? Das ist doch Deine Designvorstellung.


"da bin ich leider nicht so ganz fit drin"   dann musst Du üben   ;)


"oder müsste ich sie umbenennen in 1,2.... und dann den Counter immer +1?"    genau so...

" z.B. Textfeld1 muss RTW1 Fahrer sein, Textfeld2 RTW2 "

Beispielhaft:


Dim rs as Dao.Recordset, i as Long

Set rs=CurrentDB.Openrecordset(" select  Datum, Fahrzeug, [Name], von, bis, Std    From DeineAbfrageTabelle where Fahrzeug='Auto1' and Datum = #08/01/2011# order by Von" , dbopensnapshot)     

i=0

Do until rs.Eof
i=i+1
Me("Textfeld" & i) = rs![Name]
rs.Movenext
Next

rs.close:set rs=nothing

Xoar

Huhu,

verstehe ich das nun richtig, das ich für jedes Fahrzeug einen neuen RecordSet machen müsste?

Die Sortierung geht damit ja, wie du gezeigt hast, sehr gut.

Probiere ich nachher mal aus :)


PS: warum ist im RecordSet eigentlich nur der Name in [] und die restlichen Felder nicht?

DF6GL

Hallo,

"für jedes Fahrzeug einen neuen RecordSet "


nein, nicht unbedingt. Du kannst auch in einem Recordset mit z. B. Findfirst nach dem(n) Fahrzeug(gruppen) suchen.

"nur der Name in [] und die restlichen Felder nicht?"

weil es sich bei "Name" um ein reserviertes Wort handelt und dieses Feld, das Du selber erzeugt und so genannt hast, UNBEDINGT in Eckklammern stehen muss. 

Du kannst ja mal das einfügen:

Msgbox rs.Name

Xoar

#18
habs nun so gelöst. In der Abfrage auf der ich zugreife, erst nach der "von" Zeit sortiert und dann nach den "Fahrzeugen" per SQL.


Private Sub Vorschau_Click()
Dim DB As DAO.Database
Dim rs As DAO.Recordset
Dim qdf As DAO.QueryDef
Dim i As Integer

Dim RTW1D As Integer
Dim RTW1L As Integer
DoCmd.OpenForm "frmDienstplanAusdruck"

Set DB = CurrentDb
Set qdf = DB.QueryDefs("qryDienstplan")
qdf.Parameters(0) = Me!Datum
RTW1D = 1
RTW1L = 1
Set rs = qdf.OpenRecordset(dbOpenSnapshot)

With rs   'with vereinfacht die Schreibweise.  direkt .Befehl
  Do While Not .EOF
   '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
       If .Fields("Fahrzeug") = "RTW 1" And .Fields("Posten") = "Fahrer" Then
           Form_frmDienstplanAusdruck("RTW1_D" & RTW1D).Value = .Fields("Nachname")
           RTW1D = RTW1D + 1 Gibt hier genau zwei Felder RTW1D1 und RTW1D2, durch sie Sortierung beginnt er automatisch mit dem, der zuerst den Wagen besetzt
   ElseIf .Fields("Fahrzeug") = "RTW 1" And .Fields("Posten") = "Führer" Then
           Form_frmDienstplanAusdruck("RTW1_L" & RTW1L).Value = .Fields("Nachname")
           RTW1L = RTW1L + 1
   '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
           
  End If
  .MoveNext
  Loop
  .Close: Set rs = Nothing
End With
qdf.Close: Set qdf = Nothing
Set DB = Nothing
End Sub


irgendeine Verbesserung, bevor ich das nun für ALLE Textfelder mache :D