2017-09-05 2 views
0

Ich habe ein VBA-Skript und ich muss Formulare basierend auf verschiedenen LocationIDs in einer Tabelle erstellen. Erstellen Sie also für jede Zeile mit LocationID = 1 ein Formular mit dem Namen des Ortes, der im Titel des Formulars steht, "formLocation1". Dann für jede LocationID = 2, erstellen Sie ein anderes Formular mit dem Namen dieser im Titel, "formLocation2", etc. Was ist der beste Weg, dies mit DoCmd.OpenForm "" im VBA-Skript zu tun?MS Access Erstellen von Formularen für unterschiedliche Feld Wert in VBA

Antwort

0

Sie können so etwas versuchen.

Schleife durch ein Recordset, und erstellen Sie ein Formular für jede LocationID mit der CreateForm() Methode. Sie können dann die .Caption-Eigenschaft des Formulars auf "formLocation (LocationID)" festlegen.

(Ändern Sie T in den Namen Ihrer Tabelle).

Public Sub CreateForms() 
    On Error GoTo ex 

    Dim rs As DAO.Recordset 
    Set rs = CurrentDb().OpenRecordset("SELECT DISTINCT LocationID FROM T ORDER BY LocationID;", dbOpenSnapshot) 

    With rs 
     If .EOF Then GoTo out 
     .MoveLast 
     .MoveFirst 
    End With 

    Dim frm As Access.Form, i As Integer 
    For i = 1 To rs.RecordCount 

     Set frm = CreateForm() 
      frm.Caption = "formLocation" & rs![LocationID] 

     DoCmd.Close acForm, frm.Name, acSaveYes 
     Set frm = Nothing 

     rs.MoveNext 
    Next i 

out: 
    On Error Resume Next 
    rs.Close 
    Set rs = Nothing 
    On Error GoTo 0 
    Exit Sub 

ex: 
    MsgBox Err.Description, vbCritical 
    Resume out 
End Sub 
Verwandte Themen