辞めた人のプログラムを書き換えています。
初心者なもので、あまりコードを理解しておりませんが、
一応できるところまで直してみました。
CSVファイルをアクセスにインポート、その後項目(FileName)を追加し、CSVのファイル名を追加した項目にいれたいです。
下記構文で、インポートまではできましたが
最後の方の dbs.Execute sql
でエラーになります。
ここをクリアするにはどこを修正すればよろしいでしょうか?
アクセスは2003です。
Private Sub Cmd_01_Click()
Dim ercd As Integer
Dim dbs As adodb.Connection
Dim LsName As String
Dim TName As String
Dim Name1 As String
Dim teigi As String
Set dbs = CurrentProject.Connection
If Nz(Me.txt_01) = "" Then
MsgBox "インポートするファイル名を入力して下さい", vbOKOnly, "エラー"
Me.txt_01.SetFocus
Exit Sub
End If
'ファイル名の取得
strError = 0
LsName = "\\St1\第2業務部\$運用\1010030 アールジービー\業務\RGB一時作業ファイル\なるには不備チェック\TESTkanno\"
TName = Me.txt_01
LsName = LsName & TName & ".csv"
'インポートの確認
ret = MsgBox(TName & "をインポートしますか?", vbYesNo + vbQuestion, "インポート確認")
If ret = vbNo Then
Exit Sub
End If
Debug.Print LsName
'レコードの追加
teigi = "RGB定義"
DoCmd.TransferText acImportDelim, teigi, TName, LsName, False, ""
ret = MsgBox(TName & "をマスターに追加しますか?", vbYesNo + vbQuestion, "インポート確認")
If ret = vbNo Then
Exit Sub
End If
Call FileTuika
End Sub
Sub FileTuika()
Dim sql As String
Dim aa As Long
sql = "INSERT INTO T_Mas (処理状況,請求日,学校識別コード,学校名,学校分類名,メールアドレス,名前,ふりがな,性別,生年月日,職業,高校所在地,高校名,学年,郵便番号,都道府県,区市町村&町域,番地以下,電話番号,FileName,区分,不備,不備理由,yu,gid,保留,処理済,件数報告日,納品日 )" & _
" SELECT [" & T_Mas & "].[処理状況], [" & T_Mas & "].[請求日]," & _
" [" & T_Mas & "].[学校識別コード], [" & T_Mas & "].[学校名], [" & T_Mas & "].[学校分類名], [" & T_Mas & "].[メールアドレス]," & _
" [" & T_Mas & "].[名前], [" & T_Mas & "].[ふりがな], [" & T_Mas & "].[性別], [" & T_Mas & "].[生年月日]," & _
" [" & T_Mas & "].[職業], [" & T_Mas & "].[高校所在地], [" & T_Mas & "].[高校名], [" & T_Mas & "].[学年]," & _
" [" & T_Mas & "].[郵便番号], [" & T_Mas & "].[都道府県], [" & T_Mas & "].[区市町村&町域], [" & T_Mas & "].[番地以下]," & _
" [" & T_Mas & "].[電話番号], '" & LsName & "'," & FileName & " From" & "LsName"
Debug.Print sql
dbs.Execute sql
dbs.Close
Set dbs = CurrentDb()
With dbs
For Each tdfa In .TableDefs
If tdfa.Name = TName Then
dbs.TableDefs.Delete tdfa.Name
End If
Next tdfa
End With
dbs.Close
End Sub
No.1ベストアンサー
- 回答日時:
ぱっと見。
ヒントはスコープの問題かな。
(変数を参照できる範囲をスコープと呼びます。)
ローカル変数はプロシジャー内のみ有効。
'Call FileTuika
'End Sub
'Sub FileTuika()
コメントにすれば動くかな?
dbs.Execute sqlが越えても、次のステップでエラーになりそう。
それと Option Explicit をつけておいた方が良いよ。
No.2
- 回答日時:
エラーの内容を書かれないと分かりにくいと思いますが・・・
見たところ、インサートで記述している項目の
>区分,不備,不備理由,yu,gid,保留,処理済,件数報告日,納品日
が入れ込むデータ側(SELECT)の記述にありませんよね?
項目の数が違うのでエラーになっている気がします。
No.3
- 回答日時:
LsName がテーブル名を入れた変数なんだったら、
" [" & T_Mas & "].[電話番号], '" & LsName & "'," & FileName & " From " & LsName
とすべきだと思うが、、、
(Fromのあとにスペースが必要)
イミディエィト・ウィンドウに表示させているSQLを再度ご確認ください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) VBA 請求書自動作成 3 2022/04/24 01:58
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DBへのOPENについて
-
bcp in でエラー
-
Accessのマクロでモジュールを...
-
sqlplusでヘッダーが付かない
-
Statement ignored というエラー
-
Access VBAで行ラベルが定義さ...
-
likeとsubstrの使いわけについて
-
エクセルVBAでUserFormを起動し...
-
SQLサーバで和暦から西暦に変換...
-
今日の日付が入った行のデータ...
-
PL/SQLカーソルの2重FORループ...
-
wordの差し込み印刷での日付表示
-
日付型なら変数の先頭になん...
-
或るプロシージャの呼び出し元判定
-
SQLで部分的にGROUP BYしたいとき
-
SQL*PLUSでの分秒までの表示の仕方
-
OutlookVBAで作成したマクロに...
-
あいまい検索のパフォーマンス...
-
Accessの数値から時間に変換す...
-
キャッシュを使わずにSELECTを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
bcp in でエラー
-
SQLserver算術オーバーフロ...
-
VB.net SqlConnectionでの連続S...
-
ACCESSのVBAでCSVを取込処理に...
-
ストアドプロシージャのRETURN...
-
Accessのマクロでモジュールを...
-
Access VBAで行ラベルが定義さ...
-
エクセルVBAでUserFormを起動し...
-
今日の日付が入った行のデータ...
-
VBA プロシージャの名前の取得
-
キャッシュを使わずにSELECTを...
-
sqlplusでヘッダーが付かない
-
Accessの数値から時間に変換す...
-
ODBCリンクの際にACCESSでは読...
-
Statement ignored というエラー
-
SQLで部分的にGROUP BYしたいとき
-
PL/SQLカーソルの2重FORループ...
-
SQLサーバで和暦から西暦に変換...
-
likeとsubstrの使いわけについて
-
全角空白のTRIMができない...
おすすめ情報