Microsoft Access Club Access超初心者対象Forum Access初・中級者対象Forum Access VBA Tips Forum DAO、ADO、SQL Forum

     

リストへもどる

投稿記事の一括表示

タイトルループ処理で配列に値を格納
記事No83077
投稿日: 2017/03/10(Fri) 21:46
投稿者yon3
解決済: ON
OS:windouws10
Access Version:2016

目的は、各テーブルのデータを連結して表示したく、そのため配列でテーブルを格納して並べたいと思ってます。

イメージでは
dim tb(10) as string

for i 1 to 10

tb(i) = Nz(DLookup("txt","テーブルA","ID =" & i)

if tb(i) = "" then
tb(i) = "〜" & tb(i)
end if

tbmain = tb(1) & tb(2)・・・・・・

msgbox tbmain

中身はかなり端折ってますが、上記内容です
*本来はもっと複雑に並べてますが

デバックで見るとtb(1)の内容しか格納されません

配列を全部いちいち書くと正しく表示されます。

配列のループでの格納がそもそも出来ないのであれば俺までの話なのですが・・・

どなたかわかる方
宜しくお願いいたします。

タイトルRe: ループ処理で配列に値を格納
記事No83078
投稿日: 2017/03/11(Sat) 16:47
投稿者hatena
解決済: ON
> 中身はかなり端折ってますが、上記内容です
> *本来はもっと複雑に並べてますが

さすがに端折りすぎでしょう。

For に対する Next もないのに間違いの検証のしようがありません。

オリジナルのままでなくとも、少なくとも動作して、症状が再現できるコードを提示しましょう。

タイトルRe^2: ループ処理で配列に値を格納
記事No83079
投稿日: 2017/03/12(Sun) 12:21
投稿者yon3
解決済: ON
申し訳ございません。
ざっくり過ぎました。

sub test()

dim tb(10) as string
dim tbmain as string
dim i as integer

for i 1 to 10

tb(i) = nz(dlookup("txt","テーブルA","ID =" & i),"")

if not tb(i) = "" then
tb(i) = "〜" & tb(i)
end if

i = i + 1
next i

tbmain = tb(1) & tb(2) & tb(3) & ・・・・・・・

msgbox tbmain

end sub

上記になります

テーブルAに[ID],[txt]のフィールドがあるとして

[ID] | [txt]
1 |あ
2   |い
3 |う
4 |え
5 |お
6 |か
7 |き
8 |く
9 |け
10 |こ

レコードが上記内容で

結果として
あ〜い〜う〜え〜お〜か〜き〜く〜け〜こ
と、出したいのです。

タイトルRe^3: ループ処理で配列に値を格納
記事No83080
投稿日: 2017/03/12(Sun) 16:02
投稿者hatena
解決済: ON
> sub test()
> 
> dim tb(10) as string
> dim tbmain as string
> dim i as integer
> 
> for i 1 to 10 

=が抜けてますね。
for i = 1 to 10 

> tb(i) = nz(dlookup("txt","テーブルA","ID =" & i),"")
> 
> if not tb(i) = "" then
> tb(i) = "〜" & tb(i)
> end if
> 
> i = i + 1

この上の1行を削除しましょう。
Forは自動でiに加算しますので不要です。

> next i
> 
> tbmain = tb(1) & tb(2) & tb(3) & ・・・・・・・
> 
> msgbox tbmain
> 
> end sub

とりあえずはこれで、希望に一歩近づいたかな。

タイトルRe^4: ループ処理で配列に値を格納
記事No83081
投稿日: 2017/03/12(Sun) 16:29
投稿者yon3
解決済: ON
基本的にコードがきちんと書けてないから無理だった可能性が高いですね><

i = i + 1

これが原因で一個飛ばしになる現象が理解できました!


そして、おそらく当初の原因もこの部分のせいだと思います。

何よりもサンプルで似たようなコードを書いて細かく動かすことが何よりも優先してやることだと思いました。

聞く前にやれ。ですね

ありがとうございました!!
やってみてもわからないときはまたご相談させていただきます><

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

ページの先頭へ 前ページへ戻る