PDA

Vollständige Version anzeigen : Abfragen in einem Listenfeld anzeigen


md
16.10.2000, 20:23
In einem Formular gibt es ein Listenfeld namens lstabfragen, in dem alle aktuellen Abfragen aufgeführt werden sollen ( so wie im Datenbankfenster).
Beim Laden des Formulars läuft folgender Code ab:

For i = 1 To db.QueryDefs.Count
If aListe = "" Then
aListe = Chr$(34) & db.QueryDefs(i - 1).Name & Chr$(34)
Else
aListe = aListe & ";" & Chr$(34) & db.QueryDefs(i - 1).Name & Chr$(34)
End If
Next
With lstAbfragen
.RowSourceType = "Value List"
.RowSource = aListe
End With

Jetzt stehen alle Abfragen im Listenfeld, aber leider wirklich alle, nämlich auch die access internen wie zum Beispiel ~sq_cAdressen~sq_cKategorie, also Abfragen, die im Datenbankfenster nicht auftauchen.
Wenn ich die Datenbank komprimiere, sind diese interner (~sq usw ) für eine Weile weg.

Wer weiß eine methode, Abfragen wie im datenbankfenster in einem Listenfeld darzustellen?

Manuela Kulpa
17.10.2000, 08:03
Hallo md!

So sollte es funktionieren ;)

Private Sub Form_Open(Cancel As Integer)

Dim db As DAO.Database
Set db = CurrentDb

Dim aListe As String
Dim i As Integer

For i = 1 To db.QueryDefs.Count
If Left$(db.QueryDefs(i - 1).Name, 7) <> "~TMPCLP" And Left$(db.QueryDefs(i - 1).Name, 3) <> "~sq" Then
If Len(aListe) = 0 Then
aListe = Chr$(34) & db.QueryDefs(i - 1).Name & Chr$(34)
Else
aListe = aListe & ";" & Chr$(34) & db.QueryDefs(i - 1).Name & Chr$(34)
End If
End If
Next

With lstAbfragen
.RowSourceType = "Value List"
.RowSource = aListe
End With

If Not db Is Nothing Then db.Close: Set db = Nothing

End Sub

Falls du noch eine Frage hast, melde dich!

Viele Grüsse