Microsoft Access 掲示板

はしご高、立つ崎などの環境依存文字が含まれているレコードを抽出したいです。 / 3

3 コメント
views
4 フォロー
3
みりん梅酒 2023/11/22 (水) 17:19:55 d5f54@e2687

Shift-JISに無い文字を抽出すれば良いのであれば、いったんcsv(sjis)に出力して文字化けさせて
csvを一時テーブルにインポートして元テーブル結合させて絞り込み~じゃダメですかね。
元テーブルに名前以外の主キーがある前提ですが、こんな感じのvbaで。

Public Sub A()
Dim 元テーブル名 As String
Dim 一時テーブル名 As String
Dim 主キー As String
Dim 一時ファイル As String

元テーブル名 = "T_住所録"
一時テーブル名 = "TMP"
主キー = "ID"
一時ファイル = "C:\temp\名前リスト.CSV"

    On Error Resume Next
    CurrentDb.Execute "drop table " & 一時テーブル名, dbFailOnError
    DoCmd.TransferText acExportDelim, , 元テーブル名, 一時ファイル, True  
    DoCmd.TransferText acImportDelim, , 一時テーブル名, 一時ファイル, True

    Dim Qdf    As DAO.QueryDef
    Dim strSQL As String
    strSQL = "SELECT A.氏名 FROM " & 元テーブル名 & " A  INNER JOIN " & 一時テーブル名 & " B  ON A." & 主キー & "=B." & 主キー & " WHERE INSTR(B.氏名,'?')"
    Set Qdf = CurrentDb.CreateQueryDef("文字化けチェッククエリ", strSQL)

    CurrentDb.QueryDefs("文字化けチェッククエリ").Sql = strSQL
    CurrentDb.QueryDefs.Refresh

    Set Qdf = Nothing
    DoCmd.OpenQuery "文字化けチェッククエリ"
End Sub

通報 ...