| テキストボックスの値を選択状態にする方法 |
| 文字列を選択状態にする場合
Me.コントロール名.Selstart=0
Me.コントロール名.SelLength=Len(Me.コントロール名.Text)
選択せず、文字列の最後にカーソルを置く場合
Me.コントロール名.SelStart = Len(Me.コントロール名.Text) |
| リストの2番目以降の値を取得する方法 |
| リストの一番目の項目を0として数える。例では2番目になる----
Dim vTarget As Variant '取得した値
vTarget = Me.lst01.Column(1) |
| リスト内の一番目の項目を選択状態にする |
| '一番目の列を選択する(リストの一番目の項目を0として数える。)
Me.lst01.SELECTED(0) = True |
| リストの内容を選択しているかの判断 |
| If Me.lst01.ItemsSelected.Count <> 0 Then |
| リストの内容を取得 |
| Me.lst01.ItemData(0) 項目1は(0) 項目2は(1)・・・・項目6は(5) |
| リスト内の項目を全て選択(解除)する方法 |
| リストのプロパティの複数選択を可能にしておく。
全て選択----
Private Sub cmdALL_TRUE_Click()
Dim i As Integer
With Me.lst01
For i = 0 To .ListCount - 1
.Selected(i) = True
Next i
End With
End Sub
全て解除-----
Private Sub cmdALL_FALSE_Click()
Dim i As Integer
With Me.lst01
For i = 0 To .ListCount - 1
.Selected(i) = False
Next i
End With
End Sub |
| 複数選択した値を取得する方法 |
| Dim lstName As String
Dim i As Integer
Dim vTarget As Variant '取得した値
lstName="参照するリスト名"
If Forms!Form1!(lstName).ItemsSelected.Count <> 0 Then
For Each vTarget In Forms!Form1!(lstName).ItemsSelected
vTarget = Forms!Form1!(lstName).Column(0, i)
'ここに実行する処理を列記
Next i
End If
◆実行例
lstGroupリストから選択された内容によってlstSyouhinのRowSourceを変更する
Private Sub lstGroup_AfterUpdate()
Dim sSql As String
Dim sSql01 As String
Dim vGroup As Variant
Dim i As Integer
i = 0
For Each vGroup In Forms!frm12SYOHINBETU_URIAGE!lstGroup.ItemsSelected
vGroup = Forms!frm12SYOHINBETU_URIAGE!lstGroup.Column(0, vGroup)
'フィルタの生成
sSql = sSql & " Or (GROUP_CODE='" & vGroup & "')"
i = i + 1
Next vGroup
If i > 0 Then
'先頭の"Or"を削除
sSql01 = "(" & Mid$(sSql, 4) & ")"
sSql = "SELECT mt02SYOUHIN.SYOUHIN_CODE, mt02SYOUHIN.SYOUHIN_NAME"
sSql = sSql & " FROM mt02SYOUHIN"
sSql = sSql & " WHERE (" & sSql01 & ");"
Me.lstSyouhin.RowSource = sSql
Else
Me.lstSyouhin.RowSource = ""
End If |
| 配列コントロール |
| ◆ フォーム上のコントロールを配列として格納する方法
Option Compare Database
Option Base 1
Dim my_array As Variant
Private Sub Form_Load()
my_array = Array(Me.tbCode1, Me.tbCode2, Me.tbCode3, Me.tbCode4,
Me.tbCode5, Me.tbCode6, Me.tbCode7)
End Sub
[説明]例では、Option Base 1 を宣言しているので配列は1からになります。
my_array(1)にはtbCode1の値が格納されます。
◆ フォーム上のコントロールに配列を代入する方法
Private Sub cmdRun_Click()
Dim i As Integer
Dim ctlName As String
For i = 1 To 7
ctlName = "tbCode" & CStr(i)
Me.Controls(ctlName) = my_array(i)
Next
End Sub |