Microsoft Access 掲示板

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

3 コメント
views
4 フォロー

年賀状用の住所録をAccessで管理しています。
氏名にタイトルのような環境依存文字というのでしょうか、常用漢字ではない文字を抽出し、Reportに設定しているフォントで表示ができるかどうかを確認したいです。

しかし、数多ある環境依存文字を全てQueryの抽出条件に記述するのは現実的ではないと考えています。
どのようにすればスマートに抽出を行えますでしょうか?

ソフトはAccess2019を使用しています。

こちらを参考にしようと思ったのですが、今の環境では不十分というコメントを見かけました。
回答がつかないということはやはり難しいでしょうか?

ガッツゴジ松
作成: 2023/11/22 (水) 11:33:09
最終更新: 2023/11/22 (水) 13:55:13
通報 ...
1
hiroton 2023/11/22 (水) 14:50:19 fee61@f966d

ここはチャット型掲示板ではないので、最低でも1日程度はまたないとそもそも網にかかってないのだろうと感じることがありますね

ちょっと前に似たような話題がありました
外字を含むレコードを抽出したい

スマートな方法はありません

2

「環境依存文字」という定義が今となっては難しいですね。

はしご高、立つ崎は、現在のUnicode対応のフォントならたいてい普通に表示できると思いますが。
どのようなフォントを使かおうとしているのでしょうか。

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