Microsoft Access 掲示板

accessで50音検索がしたい / 6

9 コメント
views
4 フォロー
6
hatena 2020/10/26 (月) 11:55:33 修正

ファイル見ました。原因はフィールド名に( )を使っているのが原因ですね。
このような記号や半角空白が含まれるフィールド名はSQLで使うときは[ ]で囲む必要があります。

下記のように、氏名(フリガナ)の部分を[氏名(フリガナ)]と修正してください。

Option Compare Database
Option Explicit
Const conSelect = "SELECT 社員マスタ.社員番号, 社員マスタ.氏名 FROM 社員マスタ"
Const conOrderBy = "社員マスタ.[氏名(フリガナ)]"

Private Sub Form_Error(DataErr As Integer, Response As Integer)
'フォームのエラー時

  If DataErr = 3021 Then
    'カレントレコードなしエラー(エラー番号:3021)は無視する
    Response = acDataErrContinue
  End If
End Sub

Private Sub Op50音選択_AfterUpdate()
    fnc50音選択_lst "[氏名(フリガナ)]", Me.lst得意先, conSelect, conOrderBy
End Sub
 
Private Sub op段選択_AfterUpdate()
    fnc段選択_lst "[氏名(フリガナ)]", Me.lst得意先, conSelect, conOrderBy
End Sub

Private Sub Form_Open(Cancel As Integer)
    Me.lbl件数.Caption = "件数: " & Me.lst得意先.ListCount
End Sub

このような記号や半角空白はトラブルの元になりますので、最初からフィールド名やオブジェクト名には使わないようにするのが吉ですね。

例えば、氏名(フリガナ) ではなくて 氏名_フリガナ とするとか。_(アンダースコア)は使用しても問題ない数少ない記号の一つです。

通報 ...