プロが教えるわが家の防犯対策術!

質問事項が分かり辛く申し訳ありません。
クエリのデータで空白の場合には、移行に入る値を代入する場合には、どの様な方法がありますでしょうか?
具体的には、以下の様な場合です。

区分CD       会社名 
--------      -----------
          A社
          A社
          B社
1100        B社
          A社
          C社
          A社
1200       B社    

上の状態から
下の状態にしたい

区分CD       会社名 
--------      -----------
1100        A社
1100        A社
1100        B社
1100        B社
1200        A社
1200        C社
1200        A社
1200        B社    

上記の状態に出来ないでしょうか?

質問者からの補足コメント

  • 頂いた回答を基にフォームコマンドより上記VBAにて動作をさせてみましたが、エラーは出ませんでしたが、現状のところ空欄を埋めることは出来ておりません。
    もう少し、調整し改めて結果を報告させていただきます。

    No.2の回答に寄せられた補足コメントです。 補足日時:2020/08/06 19:05

A 回答 (2件)

下記でどうでしょうか。



テーブル名は”Sample"としています。
ご自身のテーブル名に書き換えてください。
参照設定でADOを有効にしてください。



Sub CD_Update()

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

Set cn = CurrentProject.Connection

Set rs = New ADODB.Recordset
rs.Open "Sample", cn, adOpenKeyset, adLockOptimistic


Counter = 0

Do Until rs.EOF

If IsNull(rs!区分CD) Then

Counter = Counter + 1

rs.MoveNext

Else

CD = rs!区分CD

rs.Move -1 * Counter

For i = 0 To Counter

rs!区分CD = CD
rs.MoveNext
i = i + 1

Next

Counter = 0

End If


Loop
rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing
End Sub
この回答への補足あり
    • good
    • 0
この回答へのお礼

ご教授頂いたVBAで望んだ結果を得ることが出来ました。
当初値が代入されなかった原因は「区分CD」フィールドが文字列だったためでした。数値型に変更したら問題ありませんでした。
なお、「区分CD」が文字列の場合に数値が代入する様にするにはどこを変更すればよろしいでしょう?合わせてご教授頂けると幸いです。

お礼日時:2020/08/07 09:09

情報が曖昧な部分があるので決め打ち。



ID、区分CD ともに数値型
テーブル名は[「テーブル1」
クエリで見せるだけで、テーブルは書き換えない。


区分CD: DLookUp("区分CD","テーブル1","ID=" & DMin("ID","テーブル1","ID>=" & [ID] & " AND 区分CD Is Not Null"))-0
    • good
    • 0
この回答へのお礼

不十分な情報での質問申し訳ありませんでした。
bonaronさんのおっしゃる通り、クエリ内での空欄埋めが実現できましたありがとうございました。

お礼日時:2020/08/06 12:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています