
VBAで以下のコードを使い、「T_MAS」テーブルから「IDNO」, 「STATUS」, 「DATE」のフィールドをエクセルシートに取り込んでいます。
これは私の前任者が作成したもので、それに私が「DATE」のフィールドも追加するために作っている作りかけです。
Public Sub DB読込()
Dim i%, SQL$, vRow%
Dim vL&, vS$
SQL = "SELECT IDNO, STATUS, DATE"
SQL = SQL & " FROM T_MAS"
Call DbOpen
With Sheet2
vRow = 2
.Range(.Cells(vRow, 4), .Cells(vRow + 15000, 5)).ClearContents
.Range(.Cells(vRow, 4), .Cells(vRow + 15000, 5)).ClearContents
Set Rs.ActiveConnection = Conn
Rs.Open SQL, Conn
For i = 1 To 2 Step 0
If Rs.EOF Then Exit For
vL = IIf(IsNull(Rs![IDNO].Value), 0, Rs![IDNO].Value)
.Cells(vRow, 4) = vL
vS = IIf(IsNull(Rs![Status].Value), 0, Rs![Status].Value)
.Cells(vRow, 5) = vS
vT = IIf(IsNull(Rs![DATE].Value), "", Rs![DATE].Value)
.Cells(vRow, 6) = vT
Rs.MoveNext
vRow = vRow + 1
If vRow > 100 Then Exit For
Next i
Rs.Close
Set Rs = Nothing
End With
Call DbClose
End Sub
「IDNO」は6桁の数字です。
「STATUS」は1~9の数字です。
「DATE」は2023/02/21といった日付です。
DbOpenとDbCloseは別コードを使用しています。
①これらに2つ条件を付けたいのです。
「DATE」は2021年から2023年までの間
「STATUS」は数字の3に絞ったものを読み込みたいです。
2データ量は数万になりますがそのまま読み込むとオーバーフローになります。
If vRow > 100 Then Exit For を挿入していますが、実際は全てのデータが必要です。
このオーバーフローを出さない対策もしたいです。
お詳しい方教えてください、宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
2の方は、
vRow%
↓
vRow&
変数の宣言の型を変更する。
https://pulogu.net/blog/020-computer/excel-vba/e …
ところで
.Range(.Cells(vRow, 4), .Cells(vRow + 15000, 5)).ClearContents
.Range(.Cells(vRow, 4), .Cells(vRow + 15000, 5)).ClearContents
何故同じ物が?
もしかして
.Range(.Cells(vRow, 4), .Cells(vRow + 15000, 6)).ClearContents
3列に対して行ないたいならセルを左上,右下で指定すれば1行で済みます。
ただし連続している場合ですけど。
ありがとうございます!
2の部分が解決できました、他の部分も自力で何とか形になりました。
ちなみに同じものはコピペミスです、、すいません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) 他のシートからコピーする下記マクロで貼付け位置をWorksheets(1).Range("A3")の 8 2023/01/30 18:48
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
INT64対応のprintf系関数はあり...
-
Notesのフォームを動的に・・・
-
rs.filterで、likeの検索ができ...
-
スプレッドシートのnull表示
-
BASICでFIELDやPUTやGETの練習...
-
VB6,Access2000のMDBでのデータ...
-
ADOX フィールドのRequiredプ...
-
C# return文の代入につてい
-
c言語で自分のホームディレク...
-
アクセス ADO Null以外のレコ...
-
accessでフィールド追加のあと...
-
active reportsアンバウンドフ...
-
2次元のdictionary
-
クリスタルレポート(8.5)の書式...
-
AS/400の論理ファイルで年度だ...
-
日付と文字列を条件としてDLook...
-
ACCESSで日別集計をする場合
-
ADOをし使用して、Accessのテー...
-
エクセルのマクロ コンボボッ...
-
Format関数の戻り値
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
accessでフィールド追加のあと...
-
INT64対応のprintf系関数はあり...
-
Accessのフィールド名に半角括...
-
DataTableに特定のフィールドが...
-
2つ目のレコードの値を取得す...
-
テーブルのデータ型の変更がで...
-
Access 2010で実行時エラー3061
-
クリスタルレポート(8.5)の書式...
-
AccessのDAOでフィールド名を配...
-
ADOでNullフィールドの抽出
-
ACCESSデータベースにV...
-
クリスタルレポートで困ってい...
-
クリスタルレポートで文字列の...
-
Access クエリで変数を参照する...
-
2次元のdictionary
-
SQLでフィールド番号を指定する...
-
AccessVBAで他テーブルのデータ...
-
Access VBA 添付型フィールド
-
ACCESSで日別集計をする場合
-
アクセス ADO Null以外のレコ...
おすすめ情報