好的,朋友們,我在一週半的時間內離開了自己的工作,我正在努力讓我的老闆做得更輕鬆。他沒有任何訪問知識,所以我正在嘗試創建一個能夠自動生成報告的表單。我沒有爲所有不同的報告創建不同的表單,而是試圖從參數表中自動化它。這就是我要去的地方: 我有一個表格,由我創建,由5個字段組成。我想使用這些字段填充標準表單模板中的參數字段。在我的表中的五個字段如下:根據表單上的組合框自動查詢選擇
- 查詢類型正在運行的(結果吐出)
- 產生這份報告中,用逗號,沒有空格分隔的查詢。
"QRYNAMEA,QRYNAMEB"
- 其中這些查詢生成表,這將通過
transferspreadsheet
- 目的地使用excel文件,已經有設置喂數據透視表。
- 這個excel文件的輸入表。目前,所有這些表被稱爲「輸入」。 (這並不重要)
我的問題是隨着我製作組合框後不知道該去哪裏。我知道足夠的visual basic來自動化查詢,但還不足以使用3,4和5中的信息填充表單(到目前爲止,我已經手動更改了這些查詢)。我不知道如何從「選擇框」中的選擇中查找表中的記錄,然後從自動化中選擇單個字段。
我對我解析#2和自動化查詢並將值放入我正在查看的字段的能力非常有信心,但我不知道如何從表中真正拉出這些值,然後才能做這些事情。我似乎也無法形容這一點足以讓谷歌幫助我。
有沒有人做過這樣的事情?我假設我只是缺乏一個VBA庫的知識,但我沒有找到答案。
編輯: 我此刻的傾向是爲這個表創建一個查詢,它將根據我給出的輸入返回一個字段。我可以想象在SQL中這樣做,但我仍然不知道如何填充表單,也不知道如何從表中提取字段對象。
我必須出門一天,但星期五我會回來繼續工作,一旦找到它,我就會發布我的解決方案。這似乎是一個獨特的難題,並且很高興給出答案。
最終編輯:代碼被拋光(不具有的錯誤處理的方式多):
第一種方法,其提取從該表中的字段和填充形式中,通過選擇激活在組合框和一個新條目看起來是這樣的:
Private Sub QuerySelect_Change() Dim db As Database Dim rec As Recordset Set db = CurrentDb Set rec = db.OpenRecordset("SELECT [Queries to Run], [Source Table], [Destination Spreadsheet], [Destination Sheet Name] FROM TBL_QRY_SETTINGS WHERE TBL_QRY_SETTINGS.[Query Type] Like '" & [Forms]![QuerySelector]![QuerySelect] & "';") [Forms]![QuerySelector]![QueriesToRun].Value = rec("Queries to Run") [Forms]![QuerySelector]![SourceTable].Value = rec("Source Table") [Forms]![QuerySelector]![FileDest].Value = rec("Destination Spreadsheet") [Forms]![QuerySelector]![SheetName].Value = rec("Destination Sheet Name") Set rec = Nothing Set db = Nothing End Sub
第二個代碼就會將該數據運行查詢。我喜歡這是怎麼發生的。它在單擊靠近組合框的按鈕時運行。
Private Sub DynamicQuery_Click() Dim qryArray As Variant Dim i As Integer qryArray = Split([Forms]![QuerySelector]![QueriesToRun], ",") DoCmd.SetWarnings False For i = LBound(qryArray) To UBound(qryArray) Debug.Print qryArray(i) DoCmd.OpenQuery (qryArray(i)) Next DoCmd.SetWarnings True DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, [Forms]![QuerySelector]![SourceTable], _ [Forms]![QuerySelector]![FileDest], _ True, [Forms]![QuerySelector]![SheetName] End Sub
注意,對於部分最終代碼(1)幾乎相同的所選擇的答案,所不同的是我抓住多個字段。這是有效的,因爲我知道我有唯一的「查詢類型」,而我的記錄集只包含一條記錄。
無論如何,我希望有些人在這個跌跌覺得它有用。 Send me a message if you do
。據我簡短的谷歌搜索可以看出,這種自動化工作還沒有完成。它應該讓訪問不識字的人更容易運行他們自己的查詢,並且對於設計師來說,如果他們希望在點擊幾下後就可以查詢所有查詢,那麼這很容易。
有人可以想見,使用這種通過像我引用表迭代來自動執行各種順序報告。
沒有拉該自動方式。如果我遵循你所描述的內容,將需要某種文檔表格,其中包含你想在從組合框中選擇查詢後顯示的所有細節。 –
@HansUp我不能嵌入在帖子中的照片,我找不出一個很好的方式對其進行格式化,所以這裏是截圖:http://i.imgur.com/EuTi5bY.png 頂行是唯一充實的,但他們都遵循相同的格式。 – GMoany