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も見ています
-
餃子を食べるとき、何をつけますか?
みんな大好き餃子。 ふと素朴な疑問ですが、餃子には何をつけて食べますか? 王道は醤油とお酢でしょうか。
-
「平成」を感じるもの
「昭和レトロ」に続いて「平成レトロ」なる言葉が流行しています。 皆さんはどのようなモノ・コトに「平成」を感じますか?
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
おすすめのモーニング・朝食メニューを教えて!
コメダ珈琲店のモーニング ロイヤルホストのモーニング 牛丼チェーン店の朝食などなど、おいしいモーニング・朝食メニューがたくさんありますよね。
-
ギリギリ行けるお一人様のライン
おひとり様需要が増えているというニュースも耳にしますが、 あなたが「ギリギリ一人でも行ける!」という場所や行為を教えてください
-
VBAマクロ実行時エラーの修正について
Visual Basic(VBA)
-
【ExcelVBA】クエリの更新とピボットの更新を自動化するには?
Visual Basic(VBA)
-
ファイルを処理中に次の処理に移ってしまうようなのですが、、
Visual Basic(VBA)
-
-
4
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
5
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
6
Vba アプリケーションが立ち上がるまで待つ
Excel(エクセル)
-
7
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
8
マクロで待機時間を作りたい
Access(アクセス)
-
9
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
10
「#エラー」の回避
Access(アクセス)
-
11
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
12
VBAで3秒だけ時間を止めたい
Visual Basic(VBA)
-
13
vba クリップボードクリアについて教えてください
その他(プログラミング・Web制作)
-
14
バックグラウンドのプロセスのエクセルを閉じる方法
Visual Basic(VBA)
-
15
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
16
アクセス・クエリの抽出条件(翌日以降)
Access(アクセス)
-
17
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
-
18
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
19
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
20
Access2003 クエリで、空の列は作れますか?
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
特定のファイルを他のプロセス...
-
IF文に時間(何時から何時ま...
-
private subモジュールを他のモ...
-
特定の名前のオートシェイプの...
-
シグナル 6(SIGABRT)とは?
-
ExcelのVBAで、選択したファイ...
-
マクロで、次のコードへ行く前...
-
どうやってもFor文を抜けてしま...
-
VBAの進捗状況をリアルタイ...
-
vbaレポート名の指定が間違って...
-
順番に処理させたい
-
Excel VBA セルの名前があるか...
-
VB.NET SPRED(チェックボック...
-
VB6にてネットワーク上にある共...
-
エクセル VBAで複数セル選択時...
-
CImage::Loadの戻り値は何でし...
-
どう増強すべきか
-
【C#】Page_Loadさせない方法に...
-
VB6.0で、ランタイムエラーを全...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
IF文に時間(何時から何時ま...
-
シグナル 6(SIGABRT)とは?
-
private subモジュールを他のモ...
-
特定の名前のオートシェイプの...
-
どう増強すべきか
-
vbaのエラー対応(実行時エラー...
-
マクロで、次のコードへ行く前...
-
ExcelのVBAで、選択したファイ...
-
どうやってもFor文を抜けてしま...
-
【Vb.net】プリンタジョブの取得
-
Excel VBA セルの名前があるか...
-
エクセル VBAで複数セル選択時...
-
特定のファイルを他のプロセス...
-
【C#】Page_Loadさせない方法に...
-
VBA 複数の行を高速で削除する...
-
Functionで戻り値を複数返す方法
-
シェルスクリプトでファイル内...
-
Word VBA。各マクロの間に待ち...
-
StatusStripの表示が更新されな...
おすすめ情報