質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

解決済

テーブルにフィルターを設定して変数に抽出されたレコードを代入したい

aaiiuueeooaiai
aaiiuueeooaiai

総合スコア10

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

2回答

0評価

0クリップ

246閲覧

投稿2022/01/22 11:43

初めましてお世話になります。

現在送り状作成アクセスを作成しております。
その中にある伝票番号テーブルの送付フラグコード=1のレコードの9番目のフィールドであるアドレスフィールドのレコードを変数の中にレコードの分だけ追加していきたいと考えております。

例えば変数をSTR(string型)とします。
送付フラグコード=1のレコードが伝票番号テーブルの中に3レコードありアドレスフィールドがすべてのレコードに記載されている場合、
STR=アドレス1アドレス2アドレス3
という形で格納したいと考えております。
このSTRの中に入っている文字列を利用して後々outlookの宛先であるTOに代入してメールを作成したいという目的があります。

vbaのコードとしては

1.Private Sub mailbtn_Click()
2.Dim RS As ADODB.Recordset
3.Dim CN As ADODB.Connection
4.Dim STR As String

5.Set CN = CurrentProject.Connection
6.Set RS = New ADODB.Recordset
7.Set RS = CN.Execute("伝票番号テーブル")
8.RS.Filter = "送付フラグコード=1"

9.Do Until RS.EOF
10. STR = RS.Fields(9)
11. RS.MoveNext
12. STR = STR+STR
13.Loop

14.RS.Close: CN.Close
15.Set RS = Nothing
16.Set CN = Nothing

17.End Sub
と最初に書いたのですが12行目が間違っており送付フラグコードが1の最後のレコードのアドレスが2回連続して代入されいているだけでした。
例えるなら"AA”のようにA+Aという感じになるだけでした。

do until ~Loopの使用例としてdebug.printを活用しているものが多いのですがそれだとイミディエイトウィンドウに
A
B
C
と記載されるだけで目的が果たせません。
私が理想とするのは
STR=ABC
という結果なのです。
12行目を削除するとSTR=Cと最終レコードのアドレスフィールドの文字にしかなりません・・・。

どなたか理想的な文字を取得する方法ご存じありませんでしょうか?

大変お手数ですがご教授お願いいたします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。