2012-01-04 61 views
0

我的老闆給我解決問題的1,500頁Access 97 Bible(別笑)解決我的問題,如何解決他的問題,因爲它有nee VBA代碼。如何創建文本字段,將它們放大並將它們放在報告中的列中的示例

讓我先澄清一下,我已經試圖解決這個問題,沒有(很多)編碼,而且我已經在VBA中編寫了很多代碼,所以我基本上熟悉大部分內容,包括記錄集,查詢等等,但在MS Access限制如何使用來自VBA變量的數據形成報表時遇到問題。我在大多數編程語言中也是多功能的,但這不是一個語言問題,而是一個「如何/可能有什麼」的問題。

我現在的問題是,將查詢字段拖動到Detail子表單中,並將它們放入單元格設置爲Left和Top的列中使用VBA代碼正在移動它們,但每個單元格都在新頁面上。不幸的是,每個單元格中有多個數據不符合可用的「創建報告指南」選項。

所以我的問題是這樣的:有人可以指點我創建,放置和填充VBA變量字符串,在任何座標上的文本字段的代碼的工作示例,我可以根據我選擇的紙張大小進行操作嗎?

編輯:上述不是一個選項,據我所知,這將禁止客戶端獲取.mde數據庫。那麼剩下的僅僅是如何獲得一些關於如何將幾行GROUPED BY工作日和機器(見下文)記錄到每個單元格的記錄集或類似內容的建議。我想最好的方法是統計表中的列數(sql結果中的機器),並用虛擬數據創建5行,然後遍歷結果行並將數據放入相關控件中。但是如果你有更好更快地完成這項工作的想法,請將它們寫爲答案。

對不起,我知道有些事我不理解。基本上,我認爲Access支持通過VBA動態創建報告,即。 「用數據生成頁面」而不是「準備連接到數據源的控件流」。但是,Access要求您手動創建大量虛擬,未鏈接的控件,然後填充或隱藏它們,這就是它們變得「動態」的方式。

這是針對訪問本地和遠程ODBC SQL數據庫表的遠程服務器上的Access 2003(如果相關)。 目標是製作n列的周計劃(n =某個工廠的機器數量)x 5行(週一至週五),並放置一個或多個記錄集行(=該機器當天的計劃活動)在每個「n乘5表」單元中。

如果你發現在這篇文章中發泄沮喪,我只能問你的諒解和希望爲你理解。

+0

似乎很尷尬讓機器在列中穿過頁面? 2臺機器將會是2個柱子,浪費很多紙張空間。 15臺機器會建議字體和文本框太小而無法使用。平日裏不會有7個工作日像任何日曆一樣,然後n臺機器下來的工作會更好嗎?在Access中這個設置也很容易。通過建議列大小將永遠不會一致,這意味着沒有預先打印的表格或OCR系統或任何類型的自動掃描這些表中的工作號碼或條形碼。這樣的佈局因此更容易被人和機器讀取。 – 2012-01-07 09:40:19

回答

0

解決方案:(!GRR)

  • 手動創建了很多對象

  • 名字他們系統地

  • 把它們放在一個控件數組(得到所有Me.Controls,篩選出那些你感興趣的,並把它們放在一個索引數組中)

  • 通過數組並更改它們的適當值領帶

0

所以,有這麼多的技術: 例如:1)使用此DINAMIC SQL: 「創建一個功能,使SQL查詢 功能MakeMySQlReport(參數): 昏暗STRSQL作爲字符串 昏暗strMyVar作爲字符串

strsql = vbnullstring 
    strsql = "Select " & myVar1 & " as MyFieldVar1, * from myTable where Fieldx =" & Parameters 
    MyReport.recordSource = ssql 
End Function 

例:2)創建函數,返回你的字符串:

Function MyString1() as string 
    MyString1 = 'ABC' 
end Function 

一個在報告中,選擇文本框將接收值和類型= MyString1()]

我希望這對你有幫助,需要更多的例子嗎?

+0

不,這部分我已經知道了!我需要解析查詢結果行(沒問題),並根據行數據動態創建&放置文本字段(問題)。 – 2012-01-05 09:31:37

相關問題