none
請問,能在ACCESS裡用VBA可以寫出SQL的迴圈嗎? RRS feed

  • 一般討論

  • 例如:

    n個客戶的資料表(資料表名稱為:客戶1客戶2客戶3…..客戶n)

    而每個資料表要SELECT的欄位都相同,(假設每個資料表都要查詢欄位2和欄位4)

    能一次在按鈕裡寫迴圈同時執行n個客戶資料表的欄位2和欄位4

    之後一次出現那n個查詢完的資料表視窗嗎(不要join或者子表單的樣子出現,

    希望可以n個資料表就出現n個視窗),謝謝。

    2010年9月28日 上午 10:49

所有回覆

  • 沒問題

    以下範例會自動建立三個查詢並自動打開,這三個查詢各對應一個資料表

    查詢名稱與資料表名稱,請自行依需求修訂

    Private Sub Command1_Click()
        Dim TableName As String
        Dim QueryName As String
        Dim I As Long
       
        For I = 1 To 3
            TableName = "UData" & I
            QueryName = "Result" & I
           
            If IsQueryExisted(QueryName) = True Then
                Application.CurrentDb.Execute "DROP TABLE [" & QueryName & "]"
            End If
            Application.CurrentDb.CreateQueryDef QueryName, "SELECT * FROM " & TableName
            Application.DoCmd.OpenQuery QueryName
        Next
       
    End Sub

    Function IsQueryExisted(ByVal QueryName As String) As Boolean
        On Error GoTo Exception
        Dim x As Boolean
        x = Application.CurrentData.AllQueries(QueryName).IsLoaded
        IsQueryExisted = True
        Exit Function
    Exception:
        IsQueryExisted = False
    End Function

    2010年12月24日 下午 03:43