• 締切済み

アクセス2000VBA

アクセス2000でのVABで Dim OutFlName Dim 先頭 Dim 後方 WK集計開始日 = Me![開始日] WK集計終了日 = Me![終了日] 先頭 = Format(WK集計開始日, "GGGEE\年MM\月DD\日") 後方 = Format(WK集計終了日, "GGGEE\年MM\月DD\日") OutFlName = "C:\ACDB\" & 先頭 & "から" & 後方 & "間の日報データ.xls" Response = MsgBox(WK集計開始日 & "から" & WK集計終了日 & "までの日報データをエクセルに出力します。", vbInformation + vbYesNo, "日報データ出力") If Response = vbYes Then DoCmd.OutputTo acOutputQuery, "NWKQ_日報一覧", acFormatXLS, OutFlName, True '," On Error GoTo 0 MsgBox "データの出力が完了しました。", vbInformation + vbOKOnly, "出力完了" On Error Resume Next Else MsgBox "出力を中止します。", vbExclamation + vbOKOnly, "出力中止" Exit Sub End If DoCmd.Close acForm, Me.Name End Sub というプログラムを組んでいます。格納先をC:\ACDB\currentにしたいのですが、OutFlName = "C:\ACDB\" & 先頭 & "から" & 後方 & "間の日報データ.xls"を"C:\ACDB\current" &~ に変更すると、C:\ACDB直下でcurrent先頭~のファイル名で保存されます。 これを上手くC:\ACDB\currentへ保存できる方法はないでしょうか。

noname#199603
noname#199603

みんなの回答

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

>"C:\ACDB\current" & ではなくて "C:\ACDB\current\" & なのでは?(最後の"\"が抜けてる?)

noname#199603
質問者

お礼

ありがとうございました。単純なことでしたが、助かりました。

関連するQ&A

  • ACCESSからEXCELへのオートメーション操作

    ACCESSからEXCELへのオートメーション操作について質問させて下さい。 以下のようにコードを書きましたが、エラーに飛んでしまいます。 また、EXCELファイルは出来ているのですが、データがきちんと出力されません。 解決手段をご教授して下さい。 宜しくお願いします。 Private Sub コマンド39_Click() On Error GoTo エラー_Err DoCmd.TransferSpreadseet acExport, acSpreadsheetTypeExcel8, "営業報告", "C:\営業日報.xls", True Dim objEXE As Object , Dim wk_excel As Object, wk_book As Object Dim wk_file As String wk_file = "営業日報" Set objEXE = Excel.Application objEXE.Workbooks.Open ("C:\営業日報.xls") wk_excel.Sheets(wk_file).Columns("C:C").Select wk_excel.Sheets(wk_file).Open.Columns("E:E").ColumnWidth = 10 With Selection .Formula = .Value End With wk_excel.Sheets(wk_file).Range("A1").Select Exit Sub エラー_Err: MsgBox "エラーです" エクセル_Exit: Exit Sub End Sub

  • VBAでFormat がうまく使えない

    たびたびお世話になっています。 今回はVBAでの基本的な関数であろうFormat関数について質問させて頂きます。 現在 WindowsME / EXCEL2002 でマクロ・VBAを使用した日報を製作しています。 その中で、設定欄で入力した日付をソース内でFormat関数で形式を変えて表示させようとしているのですが、EXCEL97の環境に持っていくとエラーが出て使用できません。 EXCEL97で使えないのかと思いましたが、同じ環境(同じPC・同じEXCEL)で新規ファイルを作成し、同じ表記をすると普通にFormat関数が使用できます。 これはいったい何がまずくてエラーが出てしまうのでしょうか。 一応ソースは以下の通りです。 Private Sub cmd_run_Click() Dim strMonth As String Dim intOkCancel As Integer '' 処理実行確認 strMonth = Worksheets("設定").Range("C12").Value strMonth = Format(strMonth, "yyyy年m月") intOkCancel = MsgBox(strMonth & "の日報集計を開始します。よろしいですか?", vbOKCancel, "集計開始") If intOkCancel = vbCancel Then MsgBox "集計を中止します", vbOKOnly, "集計中止" Exit Do End If ''集計 Call S_Run End Sub 出るエラーは「コンパイルエラー:プロジェクトまたはライブラリが見つかりません」です。 簡単なことなのかも知れませんが、これでは他の方に使って頂けなくて困っています。 お知恵をお貸し下さい。

  • AccessのVBAに関しての質問です。

    クエリで抽出したファイルをCSVで出力させ、出力したファイル名を「連番&ファイル名」の形にしたく 下記のコードを使用しました。 6ファイルは出力は成功したのですが、7ファイル目を出力しようとしたところ、「#6:オーバーフロウしました。」とエラーがでてきてしまいます。 原因やここのコードを変えれば直るというのが、お分かりになる方がいればご教示頂けますでしょうか。 初心者ですのでコードも書いて頂けると非常に助かります。 Private Sub コマンド4_Click() On Error GoTo ErrorTrap Dim varAccess As Variant Dim varCPass As Variant Dim strmsg As String varAccess = "ASN抽出" Dim FolderPass As String Dim FileName As String Dim CheckCount As Integer FolderPass = "C:¥Users¥エクスポート¥" FileName = "_STORE_ASN_TRN.csv" CheckCount = 0 Do Until Dir(FolderPass & FileName) = "" CheckCount = CheckCount + 1 FileName = Format(CheckCount, Len(CStr(CheckCount)) + 1) & "_STORE_ASN_TRN" & ".csv" Loop varTextPass = FolderPass & FileName strmsg = "csvファイルへ出力します。" & Chr(13) & _ "出力先は" & varTextPass & "です。" & _ "よろしければ、OKをクリックして下さい。" If MsgBox(strmsg, vbOKCancel) = vbOK Then DoCmd.TransferText acExportDelim, , varAccess, varTextPass, False MsgBox "データ出力は、正常に完了しました。" End If Exit Sub ErrorTrap: If Err.Number = 3044 Then ' MsgBox "パス指定が誤っています。", vbCritical Else MsgBox "予期せぬエラーが発生しました。(#" & Err.Number & " : " & Err.Description & ")", vbCritical End If End Sub

  • 行を挿入するVBAコードを教えてください

    日々の予定を記録・集計しています。 A列に用事のタイトル B列に開始日 C列に開始時 D列に終了日 E列に終了時 の記載されているエクセルシートがあります。 睡眠が0時を過ぎて日を跨いでしまいますので、週別、月別に集計する際に、正確なデータがでません。 正確に集計するために、開始日B列と終了日D列が一致していない場合、 行を挿入して、もとの行は0時で終了させ、挿入行は0時開始にすることで、日別ごとに正確に集計したいです。 ※一つのタスクが2日以上にまたがることはありえないので想定しないでください VBAコードをおしえていただけないでしょうか。 よろしくお願いします

  • 【問題】ACCESSからEXCEL雛形(帳票レイアウト)を開き、データ

    【問題】ACCESSからEXCEL雛形(帳票レイアウト)を開き、データをセットして名前を付けて保存する流れですが、データセット時に「実行時エラー'13'型が一致しません。」が出て処理が止まります。 【詳細】 ACCESS2003 SP3 と EXCEL2003 SP3を使用しています。 簡単に説明しますと、ACCESSのフォームで集計条件を入力し実行ボタンを押下した後、ACCESSでデータの集計処理を行い、EXCEL雛形(帳票レイアウト)を開き、データをセットして名前を付けて保存する流れですが、処理が戻ってきません。データをセットする処理の前にMSGBOXを入れ"F8"で1ステップ毎に処理を進めますとセット1行目から「実行時エラー'13'型が一致しません。」が出て処理が止まります。 また、タスクマネージャのプロセスに"EXCEL.EXE"が常駐したままとなり、終了させるまでEXCEL雛形(帳票レイアウト)を開く事ができません。 【PG】 Private Sub 出力_Click() Dim DB As Database, X Set DB = CurrentDb() DoCmd.SetWarnings False Me!SUB01.SourceObject = "F_処理中" Me!SUB01.Requery X = 帳票出力A01(Me!表番号, Format(Me!年度, "yyyy"), Me!番号, Me!ファイル名, Me!シート名) Me!SUB01.SourceObject = "F_MASK" End Sub Public Function 帳票出力A01(表番号, 年度, 番号, ファイル名, シート名) ' On Error GoTo ERR_帳票出力A01 Dim DB As Database, T As Recordset, パス, 処理日時, X, i Set DB = CurrentDb() DoCmd.SetWarnings False 処理日時 = Format(Now(), "yyyymmddhhnnss") '<< 出力データ準備 >> X = 出力集計用(年度) Set T = DB.OpenRecordset("W_集計結果") If T.EOF Then MsgBox "出力可能データが存在しません。" Exit Function End If '<< EXCELへ書き出し >> パス = CurrentProject.Path Dim xlApp As Excel.Application Dim xlWkb As Excel.Workbook Dim xlWst As Excel.Worksheet Set xlApp = CreateObject("Excel.Application") Set xlWkb = xlApp.Workbooks.Open(パス & "\帳票出力レイアウト\" & ファイル名) Msgbox("この後エラーとなる。") xlWkb.Sheets(シート名).Cells(1, 16).Value = 番号  ←←← この行でエラー発生 xlWkb.Sheets(シート名).Cells(5, 4).Value = Format(CVDate(年度 - 1 & "/04/01"), "gggee年度") xlWkb.Sheets(シート名).Cells(5, 8).Value = Format(CVDate(年度 & "/04/01"), "gggee年度") xlWkb.Sheets(シート名).Cells(5, 12).Value = Format(CVDate(年度 + 1 & "/04/01"), "gggee年度") ----- 集計結果をEXCELに貼り付ける処理など以降省略 ----- よろしくお願い致します。

  • Access データ抽出および集計の方法

    Access2016を使って下記データ抽出および集計をしたいのです。 テーブルA 商品CD 契約日 会社CD テーブルB 会社CD 契約期間開始日 契約期間終了日 テーブルC 商品CD 商品種別 テーブルAとテーブルCの商品CDをリレーション テーブルAとテーブルBの会社CDをリレーション 集計したいデータ 契約日が期間開始日~期間終了日に含まれるテーブルAのデータを抽出したいです。 これが取れれば、クロス集計で会社CD毎の商品種別の数を最終的に計算します。 期間開始日~期間終了日はそれぞれの会社CD毎に違います。 また、同じ会社CDに開始日~終了日以外の日付データも含まれています。 このような抽出はできないでしょうか?

  • Access97 → Access2002

    最近会社でAccess97からAccess2002へ乗り換えた(パソコンもOSも変更)のですが、ファイルを変換(2000形式に)してから、不具合がおきています。 あるデータベースからデータを抽出する作業なのですが、 [A]・[B]二つのテーブルからテーブル[C]を作成する[テーブル作成クエリ]があり、これで作成した[C]をもとにクエリ[D]を実行し、Excelに[D]をエクスポートするという形になっています。 [テーブル作成クエリ]を手動で実行すると正常にテーブルが作成されるのですが、 マクロで実行するとうまくいきません。 マクロは メッセージの設定 ・・・いいえ クエリを開く   ・・・テーブル作成クエリを実行 ワークシート変換 ・・・[D]をExcelのワークシートにエクスポート メッセージボックス・・・"Excelへの書き出しを終了しました" となっています。 具体的には、テーブル作成クエリを実行するときには、 集計開始日と終了日をパラメータとして入力する必要があり、 作成されたテーブル[C]には入力した開始日と終了日が書き込まれます。 [D]のクエリを実行する際には[C]の開始日と終了日が抽出条件となります。 手動で[テーブル作成クエリ]を実行したときには [C]に開始日と終了日が書き込まれているのですが、 マクロで実行したときには、[C]にこの開始日と終了日が書き込まれないため、 結果的にフィールド名だけが入力されたデータの全くないExcelファイルが作成されます。 ちなみにマクロで実行する場合は、あらかじめ日付範囲を入力するフォームに開始日と終了日を入力してから実行します。 長々と書いてしまいましたが、これでおわかりいただけるでしょうか? わかりにくければまた補足いたしますので、 マクロで実行したときに正常に動作するようにするにはどうすればいいのか なにか解決策がありましたら教えてください。

  • Excel VBAの自動生成VBAでエラーが発生?

    ' ↑ 'この上にピポットテーブルを作る為のデータをSheetに生成し '下記でそのSheetに名前を付けてピポットテーブルを作成するVBA Dim wk As String wk = Application.InputBox("シート名を入力ください") If wk <> "False" Then ActiveSheet.Name = wk Else MsgBox "キャンセルされました。" Exit Sub End If Sheets.Add MsgBox "選択したシート名は" & wk & "です。" '-------------------------------------------------------------------------------------------------------------------- 'この中でエラーメッセージが出てしまっています。 'どこがいけないのでしょうか? ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ wk & "!R1C1:R95C18", Version:=xlPivotTableVersion15).CreatePivotTable _ TableDestination:="Sheet1!R3C1", TableName:="ピボットテーブル1", DefaultVersion _ :=xlPivotTableVersion15 '------------------------------------------------------------------------------------------------------------------- Sheets("Sheet1").Select Cells(3, 1).Select With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("UserName") .Orientation = xlRowField .Position = 1 End With ActiveSheet.PivotTables("ピボットテーブル1").AddDataField ActiveSheet.PivotTables( _ "ピボットテーブル1").PivotFields("作業時間"), "合計 / 作業時間", xlSum ActiveSheet.PivotTables("ピボットテーブル1").CompactLayoutRowHeader = "UserName" Rows("1:2").Select Selection.Delete Shift:=xlUp Range("C16").Select Sheets("Sheet1").Select Sheets("Sheet1").Name = "名別"

  • VBA 日付型を8桁数値へ変換

    VBAの中で、Date型の日付をバッチファイルに渡す時に、8桁数値へ変換したいのですが、0埋めのやり方が分からずに困っております。 Date型 yyyy/mm/dd 8桁数値 yyyymmdd Private Sub cmdBSubmit_Click() Dim rc As Integer Dim sDate As Date Dim eDate As Date '開始日・終了日処理 sDate = DateAdd("d", -5, txtsDate) eDate = DateAdd("d", 5, txteDate) Debug.Print "----------------------" Debug.Print "開始日-5:" & sDate Debug.Print "終了日+5:" & eDate 'パブリック変数へ、日付格納 sDateP = Year(sDate) & Month(sDate) & Day(sDate) eDateP = Year(eDate) & Month(eDate) & Day(eDate) Debug.Print "----------------------" Debug.Print "開始日:" & sDateP Debug.Print "終了日:" & eDateP rc = MsgBox("開始日 : " & sDate & vbCrLf & _ "終了日 : " & eDate & vbCrLf & _ "抽出を開始します宜しいですか?", vbYesNo + vbQuestion, "確認") If rc = vbYes Then '集計バッチを実行 'MsgBox "実行" Call 抽出 Else '中止 MsgBox "中止" End If End Sub 'パブリック変数へ、日付格納 sDateP = Year(sDate) & Month(sDate) & Day(sDate) eDateP = Year(eDate) & Month(eDate) & Day(eDate) この書き方だと、月・日が一桁の場合、例えば「2013/01/01」だと、”201311”になってしまいます。 これを、"20130101"にしたいのですが、どう書けば宜しいでしょか? 最初から、8桁日付で入力すればよいのでしょうか、入力した日付の前後5日を自動的に増やす必要がある為に上記の仕様にしてます。

  • Excel VBA のエラー 5 でトラブルです

    '下記のVBAで---------で囲った部分でエラー 5 「プロシージャの呼び出し、または引数が '不正です。」となります。色々試してみたのですが、何をやってもうまくいきません。 'ご教授頂けないでしょうか '何卒、宜しくお願い致します。 Sub 月次工数_M() ' 月次工数_M Macro MsgBox "挿入する「ファイル」を選択してください" Dim strCdir As String Dim strFname As String With CreateObject("WScript.Shell") 'カレントディレクトリ控え strCdir = CurDir 'カレントネットワークパスの設定 .currentdirectory = "\\fileserver\91_Users\EXCEL" 'ファイルを開くダイアログ表示 strFname = Application.GetOpenFilename("挿入ファイル,*.CSV") If strFname <> "False" Then ' MsgBox "選択したファイル名は" & strFname & "です。" Else MsgBox "キャンセルされました。" Exit Sub End If Dim newbk As String '新規にブックを追加 Workbooks.Add '追加したブックの名前を取得 newbk = ActiveWorkbook.Name Workbooks(newbk).Activate 'カレントディレクトリ復元 .currentdirectory = strCdir End With With ActiveSheet.QueryTables.Add(Connection:= _ "TEXT;" & strFname, _ Destination:=Range("$A$1")) ' .CommandType = 0 .Name = "TEXT;" & strFname .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .TextFilePromptOnRefresh = False .TextFilePlatform = 65001 .TextFileStartRow = 1 .TextFileParseType = xlDelimited .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = False .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = True .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False End With Dim wk As Variant 'シートの名前を付ける wk = Application.InputBox("新しいシート名を入力してください", Type:=2) If wk <> False Then ActiveSheet.Name = wk Else MsgBox "キャンセルされました。" Exit Sub End If Range("A1").Select Sheets.Add MsgBox "選択したシート名は" & wk & "です。" '----------------------------ここでエラーが発生します------------------------------------------------------ ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ wk & "!R1C1:R95C18", Version:=xlPivotTableVersion15).CreatePivotTable _ TableDestination:="Sheet1!R3C1", TableName:="ピボットテーブル2", DefaultVersion _ :=xlPivotTableVersion15 '--------------------------------------------------------------------------------------------------------------------- Sheets("Sheet1").Select Cells(3, 1).Select With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("UserName") .Orientation = xlRowField .Position = 1 End With ActiveSheet.PivotTables("ピボットテーブル2").AddDataField ActiveSheet.PivotTables( _ "ピボットテーブル2").PivotFields("作業時間"), "合計 / 作業時間", xlSum ActiveSheet.PivotTables("ピボットテーブル2").CompactLayoutRowHeader = "UserName" Rows("1:2").Select Selection.Delete Shift:=xlUp Range("C16").Select Sheets("Sheet1").Select Sheets("Sheet1").Name = "名別"

専門家に質問してみよう