目前製作一個ACCESS的報表,
進入到報表設計模式當中,
其中[詳細資料]與[頁尾]設定部分雖然已經都完全靠近。
希望呈現出來的報表是資料與頁尾內容能夠"連在一起"。
不過因為列印紙張版面的問題,
假設詳細資料部分只有一項資料,
則之後到頁尾都會呈現空白的情況!
請問這要怎麼設定才會達到資料與頁尾連在一起的模式。
如果詳細資料部分都沒有內容的話,
請問可以列印出空白的表格嗎?
所要的報表及設定模式如下網址所示!謝謝!
http://home.pchome.com.tw/beauty/jim168_sun/data/5.jpg
2006-09-04 11:36:05 · 3 個解答 · 發問者 小太陽 2 in 電腦與網際網路 ➔ 軟體
再詳細解釋我的問題!
就是如果資料只有一筆的時候,
他會出現在我所附表中的第1項表格中,
因為希望報表都一樣大,
所以是否也可以在列印的時候也會出現2-6項空白的表格,使整張報表出來的時候都是一樣大。
目前我不管怎麼設定,詳細資料處與頁尾都會出現完全空白(連表格的線條都沒有),希望能夠改善這現象。謝謝!
2006-09-04 11:45:11 · update #1
感謝以下[同學]大大的回答!
不過加入空白表格當成背景的時候,
因為我還有抬頭以及頁尾的部分,
所以如果都將他們放在報表設計中「詳細資料」部分的話,
那第二筆資料就不會印在第一筆下面的空白處,而會跑到第二頁。
所以必須頁首,頁尾,詳細資料都同時存在,
然後在加入背景,這樣雖然在設計中看到好像會剛剛好放在空白表格中,不過實際上卻隨著尺寸背景又會跑掉。
請問有沒有比較好調整的方式。謝謝!
調好久~~~每次都對不準~~~
2006-09-05 05:59:20 · update #2
牛仔褲大大您好:又見到您了!
基本上我的表單部分有設一些下拉式選單,
選出我要的條件,例如某某公司,某某產品,這個時候再按一個表單的COMMAND鍵,直接開啟報表,而報表是根據查詢來製作的,表單中的條件就會直接由查詢那邊去做篩選,之後這個報表就會顯示我要顯示的東西。不曉得這樣說,牛仔褲大大清楚嗎?
其實我的問題是在報表的表現上面,
沒有辦法呈現出我要的樣式。
前一位大大所提供加入背景的方式也很好,
可是要用很久,而且相當困難~~
謝謝!
2006-09-05 12:52:20 · update #3
請問列印報表的動作在表單操作時,有無列出明細資料(子表單).
2006-09-06 20:48:13 補充:
1.新增一資料表:命名為temp,欄位和你的查詢相同.另增一欄位:序號.2.將查詢設定的準則全部刪去.3.將以下程式碼加在你的表單操作按鈕Click事件程序:Private Sub Command17_Click() '按下預覽報表按鈕Dim k As Recordset, m As RecordsetCurrentDb.Execute "delete*from temp" '刪除temp記錄Set k = CurrentDb.OpenRecordset("SELECT * FROM 報價查 WHERE 報價單號 LIKE'" & _ Me.報價單號 & "' and 客戶 like'" & Me.客戶 & "'") '在此輸入查詢準則,二個以上加上and連接Set m = CurrentDb.OpenRecordset("SELECT * FROM temp")If k.RecordCount > 0 Then k.MoveFirst v = 0Else MsgBox ("無記錄!") '查詢沒有記錄就退出程序 Exit SubEnd If Do Until k.EOF v = v + 1 m.AddNew m("序號") = v m("報價單號") = k("報價單號") '欄位名稱 m("報價日") = k("報價日") m("有效日") = k("有效日") m("統一編號") = k("統一編號") m("客戶") = k("客戶") m("商品") = k("商品") m("數量") = k("數量") m("單價") = k("單價") m("小計") = k("小計") m("商品名稱") = k("商品名稱") m.Update k.MoveNext LoopIf v < 6 Then '少於6筆則補序號至第6筆 Do Until v = 6 v = v + 1 m.AddNew m("序號") = v m.Update LoopEnd IfDoCmd.OpenReport "報價表", acPreviewk.Closem.CloseEnd Sub
2006-09-06 20:51:25 補充:
同學大大的招數很讚,簡單有效.
2006-09-06 16:48:13 · answer #1 · answered by 牛仔褲1431 6 · 0⤊ 0⤋
牛仔褲好:很不好意思.借用您的程式討論這個問題.
Private Sub Command17_Click() '按下預覽報表按鈕
Dim k As Recordset, m As Recordset
CurrentDb.Execute "delete*from temp" '刪除temp記錄
Set k = CurrentDb.OpenRecordset("SELECT * FROM 報價查 WHERE 報價單號 LIKE'" & _
Me.報價單號 & "' and 客戶 like'" & Me.客戶 & "'")
'在此輸入查詢準則,二個以上加上and連接
Set m = CurrentDb.OpenRecordset("SELECT * FROM temp")
Dim v as integer
If k.RecordCount > 0 Then
k.MoveFirst
v=k.RecordCount +6- ( k.RecordCount mod 6) 'v = 0__建議:1確認紀錄是6的倍數
Do Until k.EOF
v = v + 1
m.AddNew
m("序號") = v
m("報價單號") = k("報價單號") '欄位名稱
m("報價日") = k("報價日")
m("有效日") = k("有效日")
m("統一編號") = k("統一編號")
m("客戶") = k("客戶")
m("商品") = k("商品")
m("數量") = k("數量")
m("單價") = k("單價")
m("小計") = k("小計")
m("商品名稱") = k("商品名稱")
m.Update
k.MoveNext
Loop
Else
Do Until v = 6
v = v + 1
m.AddNew
m("序號") = v
m.Update
Loop '__空白紀錄報表.
end if
' MsgBox ("無記錄!") '查詢沒有記錄就退出程序
DoCmd.OpenReport "報價表", acPreview
k.Close
m.Close
End Sub
最後至 巨集設 setvalue=6 的條件,確認報表每頁只會出現6筆資料.便移下一頁.
發問者:好!我有一套類似你提的問題.如有須要.我可以send to you.
2006-09-13 07:24:16 · answer #2 · answered by 大樹鄉 4 · 0⤊ 0⤋
1.將報表格式用EXCEL製作完成後,再複製到小畫家轉存成.gif檔
2.將此gif檔設為ACCESS報表的背景即可(位置需調整數次,才能精確印在表格內)
3.若有不了解處可寄信給我,提供mail寄範例給您
2006-09-04 20:41:47 補充:
提供自己做的報表供參考http://img393.imageshack.us/my.php?image=access950904yk0.gif
2006-09-05 19:54:23 補充:
1.「詳細資料」部份只用於顯示查詢後要顯示的資料,頁首/頁尾當然都存在(提供的報表右側未顯示,頁首部份用於輸入列印日期)2.調整位置應不太難,是否可將檔案寄給我幫您調整
2006-09-06 09:51:40 補充:
小弟提供的方法絕對可用(已用了6年,目前仍在使用),只是再調整位置時稍微費時,期待牛仔褲大大有更好的方法
2006-09-04 15:30:29 · answer #3 · answered by 同學 7 · 0⤊ 0⤋