2016-08-26 1 views
-1

So habe ich eine Access-Datenbank mit einer Tabellentransaktion. Auf dem Tisch gibt es eine Spalte namens Profit gefiltert nach Monat.Wie verwendet man ein Formular, um zu einer bestimmten Abfrage zu navigieren, basierend auf dem, was in der msgbox eingegeben wird?

Ich habe bereits ein paar Abfragen den Gesamtgewinn auf monatliche Basis (zB. Juni, Juli, August)

So ist es möglich, ein Formular mit einer Pop-up-Message-Box zu berechnen, zu erstellen und durch Geben Sie eine Monatsnummer in das Feld ein und klicken Sie auf, es wird zu einer bestimmten Abfrage führen?

Ich denke, es ist eine gute Idee, aber ich weiß wenig über ACCESS-Programmierung, so dass jeder Kommentar sehr geschätzt werden!

Antwort

1

Sie können VBA InputBox Funktion verwenden, um das Popup zu erstellen. Wenn Ihre Abfragen bereits in der Datenbank vorhanden sind, können Sie anhand der Ergebnisse dieser Funktion ermitteln, welche Abfrage geöffnet werden soll. Zum Beispiel:

Public Sub OpenExistingQuery() 
    Dim intMonth As Integer 
    intMonth = InputBox("Please enter a month number:", "Enter Month Number") 
    DoCmd.OpenQuery "qryMonth" & intMonth, acViewNormal 
End Sub 


Alternativ Sie die Ergebnisse der InputBox Funktion nutzen könnten, um dynamisch eine Abfrage zu erstellen, und dann öffnen:

Public Sub OpenDynamicQuery() 
    Const strQueryName As String = "qryDynamicMonth" 

    Dim db As DAO.Database: Set db = CurrentDb 
    Dim qdf As DAO.QueryDef 
    Dim intMonth As Integer 

    intMonth = InputBox("Please enter a month number:", "Enter Month Number") 

    On Error Resume Next 
    DoCmd.Close acQuery, strQueryName, acSaveNo 
    DoCmd.DeleteObject acQuery, strQueryName 
    On Error GoTo 0 

    Set qdf = db.CreateQueryDef(strQueryName) 
    qdf.SQL = "SELECT * FROM your_table_name WHERE your_monthnumber_column = " & intMonth 
    qdf.Close 

    DoCmd.OpenQuery strQueryName, acViewNormal 

    Set qdf = Nothing 
    Set db = Nothing 
End Sub 


Bitte beachten Sie, dass die oben genannten Funktionen sind von der "schnell-und-schmutzigen" Sorte. Sie brauchen wirklich eine bessere Fehlerbehandlung, Hygiene der Benutzereingaben, etc. Aber hoffentlich bekommen Sie die Idee und können sich darum kümmern.

+0

vielen Dank für Ihre Hilfe Kumpel! – Frostless

Verwandte Themen