まりふのひと

Access2003 住所録を「かな」で絞り込むのに苦戦した

住所録を Microsoft Access で作っている。改廃履歴によると、初版は H12/11/09 となっているから、10年目という事になる。これを1年ぶりに改修した。
今回の改修のポイントは、[かな検索]した時に、その「かなで絞り込む」ようにするもの。ところが‥‥ コードが思い出せない、忘れている、忘れているのだ。
やっとの思いで、6時間掛かって、下記をコーディングした。

Private Sub cmdかな検索_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
On Error GoTo Err_cmdかな検索_MouseDown
Dim mbTitle As String
Static lngState As Long
Static oldFilter As String

    mbTitle = MYObjName & "/cmdかな検索_MouseDown"
    If Shift And acShiftMask > 0 Then
        If oldFilter = "" Then
            Me.住所録一覧.Form.Filter = ""
            Me.住所録一覧.Form.FilterOn = False
        Else
            Me.住所録一覧.Form.Filter = oldFilter
            Me.住所録一覧.Form.FilterOn = True
        End If
        Exit Sub
    End If
    If lngState = 0 Then
        lngState = 1
        MsgBox "[かな検索]を行なうと、抽出条件が解除されます。" & vbCrLf & vbCrLf _
                & "元に戻すには、[Shift]+クリックするか抽出条件を再指定します。" _
                , vbOKOnly + vbInformation, mbTitle
    End If
    VARAns = get_かなclick()
    If IsNull(VARAns) Then Exit Sub
        'Filter を保存
    oldFilter = Me.住所録一覧.Form.Filter
    Me.住所録一覧.Form.Filter = "[か]='" & VARAns & "'"
    Me.住所録一覧.Form.FilterOn = True

Exit_cmdかな検索_MouseDown:
    Exit Sub

Err_cmdかな検索_MouseDown:
    MsgBox Err.Number & "/" & Err.Description, vbCritical, mbTitle
    Resume Exit_cmdかな検索_MouseDown
End Sub


かつてなら、30分ぐらいで済む内容なのに...

継続は力なり
身にしみて感じた。