クライアントのデータベースが入っているエクセルファイルを参照して請求書を作るマクロなのですが、検索画面に任意の文字を入れて検索をかけると「実行時エラー1004 一般ODBCエラー」とでます。デバックをすると「.Refresh BackgroundQuery:=False」のところでエラーの黄色いハイライトがでてしまいます。ネット上に存在する同じような質問の回答で「IEの一時ファイルと履歴を削除したり、一時ファイルの容量を増やすとなぜか直る場合がある」とありましたが、もちろん直りませんでした。。
長いので2回に分けて貼りたいと思います。
どなたかご教授宜しくお願い致します。
Private Sub CommandButton1_Click()
Worksheets("Temp").Cells.ClearContents
With Worksheets("Temp").QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=Excel Files;DBQ=" & Range("データベースファイルパス").Value & ";DefaultDir=" & Range("デフォルトフォルダ").Value & ""), Array(";DriverId=790;MaxBufferSize=2048;PageTimeout=5;")), Destination:= _
Worksheets("Temp").Range("A1"))
.CommandText = Array( _
"SELECT ", _
" プロジェクトデータ.`PSFT ID`,", _
" プロジェクトデータ.プロジェクト概要,", _
" プロジェクトデータ.`担当者名(日本語)`,", _
" プロジェクトデータ.PIC,", _
" 会社マスタ.略称,", _
" 会社マスタ.`会社名(日本語名)`, ", _
" プロジェクトデータ.`アルファベットプロジェクト名` ", _
"FROM `" & Range("データベースファイルパス").Value & "`.`プロジェクトデータ$` プロジェクトデータ, ", _
" `" & Range("データベースファイルパス").Value & "`.`会社マスタ$` 会社マスタ ", _
"WHERE プロジェクトデータ.会社ID = 会社マスタ.会社ID AND ", _
"((会社マスタ.略称 like '%" & UserForm1.TextBox1.Value & "%') OR (会社マスタ.`会社名(フリガナ)` like '%" & UserForm1.TextBox1.Value & "%')", _
" OR (会社マスタ.`会社名(日本語名)` like '%" & UserForm1.TextBox1.Value & "%') ", _
" OR (会社マスタ.`会社名(英語)` like '%" & UserForm1.TextBox1.Value & "%') ", _
" OR (プロジェクトデータ.`PIC` like '%" & UserForm1.TextBox1.Value & "%') ", _
" OR (プロジェクトデータ.`プロジェクト概要` like '%" & UserForm1.TextBox1.Value & "%') ", _
" OR (プロジェクトデータ.`アルファベットプロジェクト名` like '%" & UserForm1.TextBox1.Value & "%') ", _
" ) ", _
" AND プロジェクトデータ.登録ステータス not in ('廃止','登録申請') ")
.Name = "Excel Files からのクエリ"
続きはこちらです。見づらくて本当すみません。
http://okwave.jp/qa/q6559798.html
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
No1です。
おそくなりましたが、
"SELECT " & _
"プロジェクトデータ.`PSFT ID`, " & _
"プロジェクトデータ.プロジェクト概要, " & _
"プロジェクトデータ.`担当者名(日本語)`, " & _
"プロジェクトデータ.PIC, " & _
"会社マスタ.略称, " & _
"会社マスタ.`会社名(日本語名)`, " & _
"プロジェクトデータ.`アルファベットプロジェクト名`" & _
"FROM `" & Range("データベースファイルパス").Value & "`.`プロジェクトデータ$`.プロジェクトデータ " & _
"INNER JOIN `" & Range("データベースファイルパス").Value & "`.`会社マスタ$`.会社マスタ " & _
"ON プロジェクトデータ.会社ID = 会社マスタ.会社ID" & _
"WHERE ( " & _
" ((会社マスタ.略称) Like '%" & UserForm1.TextBox1.Value & "%') OR " & _
" ((会社マスタ.`会社名(日本語名)`) Like '%" & UserForm1.TextBox1.Value & "%') OR " & _
" ((会社マスタ.`会社名(フリガナ)`) Like '%" & UserForm1.TextBox1.Value & "%') OR " & _
" ((会社マスタ.`会社名(英語)`) Like '%" & UserForm1.TextBox1.Value & "%') OR " & _
" ((プロジェクトデータ.PIC) Like '%" & UserForm1.TextBox1.Value & "%') OR " & _
" ((プロジェクトデータ.プロジェクト概要) Like '%" & UserForm1.TextBox1.Value & "%') OR " & _
" ((プロジェクトデータ.`アルファベットプロジェクト名`) Like '%" & UserForm1.TextBox1.Value & "%')" & _
") AND ((プロジェクトデータ.登録ステータス) In ("廃止","登録申請"));"
ではどうでしょうか?
すべて同じ環境を作成する手間まではちょっとないため、ACCESSでSQL文を生成し、加工しました。
解決してたらごめんなさい。
No.2
- 回答日時:
SQLは長いので見る時間はありませんが、
生成したSQLをDEBUG.PRINTで表示させ、
構文は正しいのか、"や'など不正はないか、NULL値でおかしいところはないか。
ODBC接続は問題ないか。
select・・・from・・・・
ができたら
select・・・from・・・・where・・・
だし
select・・・from・・・・where・・・
の各値を変数化していくし、で、
どこまで確認とれて、いざ実施していますか?。
いきなりこれだけ長いSQL文を書いて
1回目にて問題なくできるかどうかも怪しいのですが・・・。
いきなりこれだけ長いSQL文を書いて失敗しているのなら
やり方も工夫した方が良いと思います。
No.1
- 回答日時:
『.CommandText = Array( _
"SELECT ", _』
でSQL文を分解して引数でセットしていますが・・・
.CommandTextはSQL文なので配列では動作しないと思いますよ。
下記ではどうでしょう?
.CommandText = "SELECT " & _
" プロジェクトデータ.`PSFT ID`," & _
" プロジェクトデータ.プロジェクト概要," & _
" プロジェクトデータ.`担当者名(日本語)`," & _
" プロジェクトデータ.PIC," & _
" 会社マスタ.略称," & _
" 会社マスタ.`会社名(日本語名)`, " & _
" プロジェクトデータ.`アルファベットプロジェクト名` " & _
"FROM `" & Range("データベースファイルパス").Value & "`.`プロジェクトデータ$` プロジェクトデータ, " & _
" `" & Range("データベースファイルパス").Value & "`.`会社マスタ$` 会社マスタ " & _
"WHERE プロジェクトデータ.会社ID = 会社マスタ.会社ID AND " & _
"((会社マスタ.略称 like '%" & UserForm1.TextBox1.Value & "%') OR (会社マスタ.`会社名(フリガナ)` like '%" & UserForm1.TextBox1.Value & "%')" & _
" OR (会社マスタ.`会社名(日本語名)` like '%" & UserForm1.TextBox1.Value & "%') " & _
" OR (会社マスタ.`会社名(英語)` like '%" & UserForm1.TextBox1.Value & "%') " & _
" OR (プロジェクトデータ.`PIC` like '%" & UserForm1.TextBox1.Value & "%') " & _
" OR (プロジェクトデータ.`プロジェクト概要` like '%" & UserForm1.TextBox1.Value & "%') " & _
" OR (プロジェクトデータ.`アルファベットプロジェクト名` like '%" & UserForm1.TextBox1.Value & "%') " & _
" ) " & _
" AND プロジェクトデータ.登録ステータス not in ('廃止','登録申請') "
はずしてたらすみません。
(SQL文の内容は確認してませんがプロジェクトデータと会社マスタのFROM句ってこれでよかったでしたっけ?)
素早い回答ありがとうございます。
コピペして使用してみましたが、同じエラーが出ました。。。
お手数おかけしますが、引き続き宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) vba userformで漢字を全角カタカナに 2 2022/07/24 15:38
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 配列の勉強をしています。使用する変数の意味、検索条件の書き方が難しいです。 2 2022/09/15 14:06
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Excel(エクセル) VBA でvlookup エラーなどは削除したい 8 2022/12/30 04:03
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/20 14:46
- Visual Basic(VBA) Excel VBA ユーザーフォーム1のコンボボックスに別ブックの値を反映させたいです。 6 2023/03/21 16:12
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
VBAマクロ実行時エラーの修正について
Visual Basic(VBA)
-
一般ODBCエラーについて
PowerPoint(パワーポイント)
-
Refreshで落ちる
Visual Basic(VBA)
-
-
4
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
5
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
6
Excel VBA で、データベースファイルの取り込みで動作が停止してしまいます
Visual Basic(VBA)
-
7
エクセルで「ODBC Microsoft Access ドライバログインの失敗」
Excel(エクセル)
-
8
エクセルでエラーが出て困っています。
Excel(エクセル)
-
9
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
10
【Excel 2007】クエリが実行できません
その他(Microsoft Office)
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プロジェクトリーダー要件定義...
-
「意図と目的」の違いとは?
-
キックオフ・・
-
「委員会」「ワーキンググルー...
-
プロジェクトとワーキングの違い
-
EXCEL VBA 1004 一般ODBCエラー1
-
EclipseのF3で宣言を開けないで...
-
ACCESS フォームからサブフォ...
-
客先の入館証を紛失し、契約取...
-
プロジェクト管理費について
-
業務上知り得た情報の取り扱い...
-
プロジェクトの予算案のテンプ...
-
内部利益率(IRR)をわかりやすく...
-
話に割り込んでくる人への対応...
-
システムエンジニアの仕事でSES...
-
メモを見返さない人
-
小売業スーパーマーケット業界...
-
フィードバックってどういう意味?
-
ITベンダとSIベンダとSIerの違...
-
大学の卒業生の就職先を見て、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
キックオフ・・
-
プロジェクトとワーキングの違い
-
「委員会」「ワーキンググルー...
-
「意図と目的」の違いとは?
-
EclipseのF3で宣言を開けないで...
-
ACCESS フォームからサブフォ...
-
EXCEL VBA 1004 一般ODBCエラー1
-
客先の入館証を紛失し、契約取...
-
クリエイティブディレクターの...
-
2016EXCEL→2016PowerPointにコ...
-
プロジェクトリーダは無能なエ...
-
プロジェクト管理費について
-
システムエンジニア(フリーラ...
-
スーパーの西友の、生鮮食品事...
-
プロジェクトの予算案のテンプ...
-
VB6のプロジェクトロードエラー...
-
ミーティングの断り方
-
コンソーシアムとプロジェクト...
-
pspice 9.1student version
-
ツリー形式リストについて
おすすめ情報