
No.4ベストアンサー
- 回答日時:
>ADOの処理が終わるのを待って次の処理へ進む方法はないものでしょうか?
【クエリの更新が終わるまで次の処理に移行しない】
ということであれば、
.Refresh BackgroundQuery:=True
としている部分を、
.Refresh BackgroundQuery:=False
とすれば良さそうに思うのですが…?
ご参考まで。
ありがとうございました。
.Refresh BackgroundQuery:=False
で、クエリの更新を待つようになりました。
今後のこともあるので、ADOで作り直してみようと思います。
No.3
- 回答日時:
こんにちは。
ソースを見る限りは、ADO ではなくて、QueryTable から、ODBCをお使いのようですが、Table を作った後に、Cells.Copy では、かなり無理があるようです。
最初の行で、↓を宣言しているようですが、False では?
Application.ScreenUpdating = True
この部分もへんですね。
Cells.Select
Selection.Delete Shift:=xlUp
単に、
Cells.Clear
で良いように思います。
>データベースの内容を取り終わる前に別のワークブックへコピーする処理が始まってしまい困っています。
今の段階で、終了を確認していないから、時間差を置いたり止めたりする方法は、感心しません。QueryTable 自体の問題ではないでしょうか。本格的に、ADOでやってみたらいかがですか?
当面、
Application.Wait Now + TimeSerial(0, 0, 30) '30秒間、ウェイトする
こんなコマンドもありますが……。
この回答への補足
ご指摘ありがとうございました。
WEBでADOのサンプルを見つけてそれを参考に作っていたのですが、そもそもADOではなかったのですね。すみませんでした。
まだわからないことだらけなもので、もう1度ADOのやり方を勉強してみます><
ウェイトの方法まで載せていただきありがとうございました^^
No.2
- 回答日時:
うーん・・・肝心の処理進行のステートメント(もしくは処理中枢部分)が書かれていないような・・・^^;
・データ抽出処理
・コピー処理
この二つはステートメントを分けていますか?
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
sub 処理実行ステートメント()
Call データ抽出処理ステートメント
Call コピー処理ステートメント
end sub
sub データ抽出処理ステートメント()
~データ抽出処理~
end sub
sub コピー処理ステートメント()
~コピー処理~
end sub
のようになっていますか?
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
この回答への補足
ご指摘ありがとうございました。
データ抽出処理とコピー処理の二つにステートメントを分けていませんでした。処理中枢部分といっても先ほど載せたものしかありません。あとはコピー後に保存するとかそれくらいなのですが・・・。
ステートメントを分けて以下のようにしてみましたが、やはりデータ取り出し中の状態でコピー処理が始まってしまいました。
何度も申し訳ありませんが、見ていただければ幸いです。
sub 処理実行ステートメント
call データ抽出処理ステートメント
call データコピー処理ステートメント
end sub
Sub データ抽出処理ステートメント()
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Sheets("得意先マスター").Select
Cells.Select
Selection.Delete Shift:=xlUp
Range("A1").Select
'
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=AAADSN;APP=MicrosoftR Query;Trusted_Connection=Yes" _
, Destination:=Range("A1"))
.CommandText = Array( _
"SELECT *" & Chr(10) & "FROM AAA" & "DB.dbo.得意先M 得意先M")
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=True
End With
end sub
sub データコピー処理ステートメント()
Sheets("得意先マスター").Select
Cells.Select
Selection.Copy
Workbooks.Open Filename:="C:\得意先M.xls"
Windows("得意先M.xls").Activate
Sheets("得意先M").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
end sub
No.1
- 回答日時:
通常、プログラムは並行して二つの処理、ということはしません。
恐らくコーディングの問題だと思いますので、「時間をおく」よりも「ソースを書き直す」ことを強くお勧めします。
恐らく差し支えない程度にソースを載せて頂いた方が話が早いと思いますが、転記は可能でしょうか?
この回答への補足
さっそくのご回答ありがとうございました。
ソースを載せますので、気づいたことがあればご指摘下さい。
Sub toku()
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Sheets("得意先マスター").Select
Cells.Select
Selection.Delete Shift:=xlUp
Range("A1").Select
'
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=AAADSN;APP=MicrosoftR Query;Trusted_Connection=Yes" _
, Destination:=Range("A1"))
.CommandText = Array( _
"SELECT *" & Chr(10) & "FROM AAA" & "DB.dbo.得意先M 得意先M")
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=True
End With
'(※
Sheets("得意先マスター").Select
Cells.Select
Selection.Copy
・
・
・
※ここで、データ取得が完了するまで待ちたいのですが・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 2 2023/03/02 18:54
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 6 2023/03/03 18:05
- その他(データベース) 業務用のデータベースサーバーの選び方について 4 2022/11/22 10:22
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- JavaScript Q&Aの掲示板を作成していてヤフー知恵袋やgoo質問のように質問ごとにURLを生成したい 5 2023/08/04 01:22
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/10 11:34
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) ExcelVBAの複数指定範囲の構文 2 2022/05/26 22:39
このQ&Aを見た人はこんなQ&Aも見ています
-
それもChatGPT!?と驚いた使用方法を教えてください
仕事やプライベートでも利用が浸透してきたChatGPTですが、こんなときに使うの!!?とびっくりしたり、これは画期的な有効活用だ!とうなった事例があれば教えてください!
-
おすすめの美術館・博物館、教えてください!
美術館・博物館が大好きです。みなさんのおすすめをぜひお聞きしたいです。
-
モテ期を経験した方いらっしゃいますか?
一生に一度はモテ期があるといいますが、みなさんどうですか? いまがそう! という方も、「思い返せばこの頃だったなぁ」という方も、よかったら教えて下さい。
-
あなたの人生で一番ピンチに陥った瞬間は?
これまでの人生で今振り返ると「あの時、1番ピンチだったなぁ...」という瞬間はありますか?
-
一番好きなみそ汁の具材は?
みんなで大好きなみそ汁の具材について語り合おうよっ!
-
VBAマクロ実行時エラーの修正について
Visual Basic(VBA)
-
【ExcelVBA】クエリの更新とピボットの更新を自動化するには?
Visual Basic(VBA)
-
マクロで待機時間を作りたい
Access(アクセス)
-
-
4
ファイルを処理中に次の処理に移ってしまうようなのですが、、
Visual Basic(VBA)
-
5
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
6
VBAで3秒だけ時間を止めたい
Visual Basic(VBA)
-
7
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
8
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
9
Access サブフォームでの選択行の取得
その他(データベース)
-
10
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
11
アクセス・クエリの抽出条件(翌日以降)
Access(アクセス)
-
12
accessテーブル作成クエリを実行したときにオートNo(のような)振る方法
その他(データベース)
-
13
VBAで、なぜかSendkeyが効きません。
PowerPoint(パワーポイント)
-
14
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
15
マクロで貼り付け位置を可変させる方法が知りたいです。
Excel(エクセル)
-
16
Vba アプリケーションが立ち上がるまで待つ
Excel(エクセル)
-
17
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
18
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
19
エクセル2016でfilter関数がないので、、抜き出す関数をおしえてください。
Excel(エクセル)
-
20
【マクロ】名前を保存する際に、同じファイルがあった場合に、メッセージを表示
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
vbaのエラー対応(実行時エラー...
-
特定の名前のオートシェイプの...
-
シグナル 6(SIGABRT)とは?
-
どう増強すべきか
-
IF文に時間(何時から何時ま...
-
【VBA】エラー処理で別プロシー...
-
複数個のTextBoxでいずれかの内...
-
For ~ Next文
-
VBA 複数の行を高速で削除する...
-
Excel VBA セルの名前があるか...
-
Functionで戻り値を複数返す方法
-
どうやってもFor文を抜けてしま...
-
C言語のGOTO文(組み込み系)
-
Word VBA。各マクロの間に待ち...
-
シェルスクリプトでファイル内...
-
ドリブン??
-
VB.NET SPRED(チェックボック...
-
エクセルVBAでロックをかけたい
-
EXCELのVBAについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
private subモジュールを他のモ...
-
シグナル 6(SIGABRT)とは?
-
どう増強すべきか
-
特定の名前のオートシェイプの...
-
IF文に時間(何時から何時ま...
-
vbaのエラー対応(実行時エラー...
-
マクロで、次のコードへ行く前...
-
Excel VBA セルの名前があるか...
-
Word VBA。各マクロの間に待ち...
-
特定のファイルを他のプロセス...
-
どうやってもFor文を抜けてしま...
-
Functionで戻り値を複数返す方法
-
シェルスクリプトでファイル内...
-
【VBA】エラー処理で別プロシー...
-
ExcelのVBAで、選択したファイ...
-
【C#】Page_Loadさせない方法に...
-
エクセル VBAで複数セル選択時...
-
StatusStripの表示が更新されな...
-
VBAでBook読み込み時の非表示方...
おすすめ情報