年賀状用の住所録をAccessで管理しています。
氏名にタイトルのような環境依存文字というのでしょうか、常用漢字ではない文字を抽出し、Reportに設定しているフォントで表示ができるかどうかを確認したいです。
しかし、数多ある環境依存文字を全てQueryの抽出条件に記述するのは現実的ではないと考えています。
どのようにすればスマートに抽出を行えますでしょうか?
ソフトはAccess2019を使用しています。
こちらを参考にしようと思ったのですが、今の環境では不十分というコメントを見かけました。
回答がつかないということはやはり難しいでしょうか?
ここはチャット型掲示板ではないので、最低でも1日程度はまたないとそもそも網にかかってないのだろうと感じることがありますね
ちょっと前に似たような話題がありました
外字を含むレコードを抽出したい
スマートな方法はありません
「環境依存文字」という定義が今となっては難しいですね。
はしご高、立つ崎は、現在のUnicode対応のフォントならたいてい普通に表示できると思いますが。
どのようなフォントを使かおうとしているのでしょうか。
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