2016-12-22 3 views
1

私はAccess 2007-2010を使用していますが、フォームには2つのテキストボックスがあります。私がしたいことは、ユーザがtextbox1afterupdateを使用)で名前を入力したとき(例えば、「ボブ」)、textbox2にユニークな年齢(二重の年齢なし)のみを表示したいとします。名前と年齢はdataという表になっています。Access VBA固有のデータをテキストボックスに表示

は、[レイアウト]

enter image description here

textbox212, 64または他の以下いずれかを表示するであろう。これは行うことは非常に簡単である場合には、事前に

申し訳ありませんが、私はyoureの探しているものよりも、もう少しであるかもしれませんVBA

答えて

1

でアクセスを一緒に学習するプロセスでいますが、試してみてください。

Dim ages(), name As String 
Dim y, x, i As Integer 

Dim rs As Recordset 

name = Me.textbox1.Value 

Set rs = CurrentDb.OpenRecordset("Select * from data Where name = '" & name & "'") 



With rs 

.MoveLast 
x = .RecordCount 
.MoveFirst 

ReDim ages(1 To (x + 1)) 

Do Until rs.EOF 
y = y + 1 
If y = 1 Then 

ages(y) = ![age] 

Else 

For i = 1 To y 

If ages(y) = ages(i) And y <> i Then 

ages(y) = "skip" 
GoTo exiter 

Else 

'fine 
ages(y) = ![age] 
End If 

Next i 
End If 
exiter: 
.MoveNext 

Loop 

.Close 
End With 

y = 0 

For y = 1 To x 


If ages(y) <> "skip" Then 

ages(x + 1) = ages(x + 1) & ages(y) & "," 
End If 

Next y 


'feel free to change form msgbox to whatever form object you want 

MsgBox " Entries in this List with the name " & name _ 
      & vbNewLine & ages(x + 1) 

あなたが望むならば、vbの新しい行を削除し、msgboxをテキストボックスに置き換えてください

+0

私はこのようなことをすべて調べて、あなたのコードを動作させようとしています。 Do Loopのif文の1つに「End If'?私はそれが 'Next i'の後に行くと信じていますが、私はそれを行いました。しかし、それは他の年齢を持つ名前を入れたときに見えます。最後のdosentのmsgboxは表示されますが、年齢のない、テーブルでは、msgboxはもちろん空の空をポップアップします。 – Kayracer

+0

よろしくお願いします。次i'と ''の間で以下の変更は、あなたが必要なものを与える必要があり@RayceNeal – scott

+0

をexiter'場合は終了する必要があります: ' X = .RecordCount .MoveFirst' とも '年齢であれば(Yを.MoveLast )= age(i)そしてy <> i Then ' – scott

関連する問題