設為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

返回列表 發(fā)新帖
查看: 6665|回復: 8
打印 上一主題 下一主題

[窗體] CurrentProject.Path語句出錯,請老師們幫幫忙

[復制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2014-7-30 10:17:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 xiaowuo2 于 2014-7-30 10:18 編輯

Dim i As Long
    Dim Expath As String '設置路徑變量
    Expath = CurrentProject.Path & "\導出的表\購進調(diào)入\" & Format(Date, "YYYYMM") '定義路徑
    If Dir(Expath, vbDirectory) <> "" Then '如果未創(chuàng)建該目錄,則
    Else
        MsgBox ("請注意,導出后的報表將保存在" & Expath & "目錄下"), vbInformation, "提醒"
        MkDir Expath '創(chuàng)建目錄
    End If
    For i = 1 To CurrentProject.AllReports.Count '統(tǒng)計數(shù)據(jù)庫目錄內(nèi)有多少個報表,然后執(zhí)行下面的導出所有報表到指定目錄下,并生成指定目錄名稱與文件名稱
        DoCmd.OutputTo acReport, CurrentProject.AllReports(i - 1).Name, "SnapshotFormat(*.snp)", Expath & "\" & [Combo88] & CurrentProject.AllReports(i - 1).Name & Format(Date, "YYYYMM") & ".snp", False, "", 0
    Next i
    If MsgBox("文件導出成功,保存在" & Expath & "目錄下,按【是】打開該目錄查看,按【否】取消查看", vbYesNo + 64, "提醒") = vbNo Then
       '按否無任何操作即可。
    Else
       Shell "explorer.exe """ & Expath & """", vbNormalFocus '打開導出的表目錄,供操作員及時查看。
    End If


老師,這段代碼,我想解決以下兩個問題:

問題1:程序運行時,會提示這句代碼MkDir Expath出錯,調(diào)試后發(fā)現(xiàn)是上面藍色代碼處的二層目錄"購進調(diào)入"無效,不知該如何修改?

問題2:將指定的6個報表(購進調(diào)入報紙報表、購進調(diào)入非出版物報表、購進調(diào)入教輔報表、購進調(diào)入期刊報表、購進調(diào)入文教報表、購進調(diào)入音像報表)導出,而不是將所有報表導出,因為我還有一些報表不需要導出,應該怎樣改?

請老師們幫幫忙,謝謝啦


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 分享淘帖 訂閱訂閱

點擊這里給我發(fā)消息

2#
發(fā)表于 2014-7-30 10:23:19 | 只看該作者
目錄要一層一層建立的

點評

老師能幫忙解決一下嗎,特別是問題2,謝謝啦  發(fā)表于 2014-7-30 10:26
3#
 樓主| 發(fā)表于 2014-7-30 10:46:29 | 只看該作者
按盜夢老師的提示,用下面的代碼,解決第一個問題,第二個問題期待老師們再次幫忙:

    Dim i As Long
    Dim Expath As String '設置第一層路徑變量
    Dim Expath2 As String '設置第二層路徑變量
   
    Expath = CurrentProject.Path & "\導出的表\購進調(diào)入\" '定義第一層路徑
    Expath2 = Expath & Format(Date, "YYYYMM") '定義第二層路徑
   
    If Dir(Expath, vbDirectory) <> "" Then '如果未創(chuàng)建該目錄,則
    Else
        MsgBox ("請注意,導出后的報表將保存在" & Expath & "目錄下"), vbInformation, "提醒"
        MkDir Expath '創(chuàng)建第一層目錄,因為MkDir無法同時創(chuàng)建兩個目錄,故要分開一個一個創(chuàng)建
        MkDir Expath2 '創(chuàng)建第二層目錄,因為MkDir無法同時創(chuàng)建兩個目錄,故要分開一個一個創(chuàng)建
    End If
    For i = 1 To CurrentProject.AllReports.Count '統(tǒng)計數(shù)據(jù)庫目錄內(nèi)有多少個報表,然后執(zhí)行下面的導出所有報表到指定目錄下,并生成指定目錄名稱與文件名稱
        DoCmd.OutputTo acReport, CurrentProject.AllReports(i - 1).Name, "SnapshotFormat(*.snp)", Expath2 & "\" & [Combo88] & CurrentProject.AllReports(i - 1).Name & Format(Date, "YYYYMM") & ".snp", False, "", 0
    Next i
    If MsgBox("文件導出成功,保存在" & Expath2 & "目錄下,按【是】打開該目錄查看,按【否】取消查看", vbYesNo + 64, "提醒") = vbNo Then
       '按否無任何操作即可。
    Else
       Shell "explorer.exe """ & Expath2 & """", vbNormalFocus '打開導出的表目錄,供操作員及時查看。
    End If

點擊這里給我發(fā)消息

4#
發(fā)表于 2014-7-30 10:51:56 | 只看該作者
xiaowuo2 發(fā)表于 2014-7-30 10:46
按盜夢老師的提示,用下面的代碼,解決第一個問題,第二個問題期待老師們再次幫忙:

    Dim i As Long
...

既然知道導出,你直接更改 CurrentProject.AllReports(i - 1).Name 為指定報表名即可。6個報表寫6次,也可以把要導出的報表名記錄在表中,直接讀取表中記錄的報表名字也行
5#
 樓主| 發(fā)表于 2014-7-30 10:54:28 | 只看該作者
盜夢 發(fā)表于 2014-7-30 10:51
既然知道導出,你直接更改 CurrentProject.AllReports(i - 1).Name 為指定報表名即可。6個報表寫6次,也 ...

嗯,最早的方法就是寫6行代碼,分別導出他們,有沒有簡煉的代碼,我原先用的是:、
    'DoCmd.OutputTo acReport, "文教報表", "SnapshotFormat(*.snp)", "F:\(20140708最新)按分類自動匯總結帳\導出的表\文教報表.snp", False, "", 0
    'DoCmd.OutputTo acReport, "教輔報表", "SnapshotFormat(*.snp)", "F:\(20140708最新)按分類自動匯總結帳\導出的表\教輔報表.snp", False, "", 0
    'DoCmd.OutputTo acReport, "期刊報表", "SnapshotFormat(*.snp)", "F:\(20140708最新)按分類自動匯總結帳\導出的表\期刊報表.snp", False, "", 0
    'DoCmd.OutputTo acReport, "報紙報表", "SnapshotFormat(*.snp)", "F:\(20140708最新)按分類自動匯總結帳\導出的表\報紙報表.snp", False, "", 0
    'DoCmd.OutputTo acReport, "音像報表", "SnapshotFormat(*.snp)", "F:\(20140708最新)按分類自動匯總結帳\導出的表\音像報表.snp", False, "", 0
    'DoCmd.OutputTo acReport, "非出版物報表", "SnapshotFormat(*.snp)", "F:\(20140708最新)按分類自動匯總結帳\導出的表\非出版物報表.snp", False, "", 0
6#
發(fā)表于 2014-7-30 11:53:13 | 只看該作者
xiaowuo2 發(fā)表于 2014-7-30 10:54
嗯,最早的方法就是寫6行代碼,分別導出他們,有沒有簡煉的代碼,我原先用的是:、
    'DoCmd.OutputTo ...

把6個導出寫成宏,然后加入:
docmd.RunMacro "導出報表"
7#
發(fā)表于 2014-7-30 12:39:46 | 只看該作者
xiaowuo2 發(fā)表于 2014-7-30 10:54
嗯,最早的方法就是寫6行代碼,分別導出他們,有沒有簡煉的代碼,我原先用的是:、
    'DoCmd.OutputTo ...

多次一舉,將數(shù)據(jù)放在一張表中,用一個分類字段區(qū)別不就完事了。
8#
 樓主| 發(fā)表于 2014-7-30 15:25:18 | 只看該作者
todaynew 發(fā)表于 2014-7-30 12:39
多次一舉,將數(shù)據(jù)放在一張表中,用一個分類字段區(qū)別不就完事了。

老師所言極是,呵呵,當時制作時偷懶,現(xiàn)在麻煩了
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

QQ|站長郵箱|小黑屋|手機版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2025-7-17 05:45 , Processed in 0.285843 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表