MySQL ODBC Connector

ODBC8.0connector(32)がいつまにかリリースされていました
32bitアプリは忘れられていなかった
これでAccessから  寿司絵文字が あれ?ここにもはいる? 
 つちよし は? 入る!
いや公開すると表示できない フォントによるのかな?

MySQLはutf8mb4でODBCもコンパチだから入るだろうと
AccessからMysqlへ向かって入力するとなぜかODBCエラー
まあいいか

インストーラーでインストしたら前のドライバを自動削除していた。
親切と言えば親切だろうが知らずに動かしていたら大変な目にあいました。
すべて入れ替えるとは限らないのに・・

Accessのクエリでダイナセット(矛盾を許す)は要注意

select TableA.columnA(主キー),関数(tableB.columnB) from TableA innner join TableB on (tableA.columnA=tableB.No)

とかクエリを元にフォーム作成
関数によってはクエリが参照のみになることがあるらしい
でもどうしても更新削除がしたい
ということでこのクエリをダイナセット(矛盾を許す)にして強引に可能にしてしまう

更新は問題ないと思うがフォームからレコード削除の時 
普通のダイナセットのクエリならクエリに主キーが入っていないTableBのレコードは削除されないのだが
ダイナセット(矛盾を許す)の場合はtableAもTableBもクエリに入っているレコードは削除されてしまう

これで1日棒に振りました

Accessのクエリでdistinct

Accessでクエリ作成 SQLビューでクエリ文から作成するとき

select distinct columnA,columnB from Table

と作ってフォームのソースにすると参照のみになってしまい、更新や追加ができない

デザインビューを見てもdistinctが付いているのはわからないので
つけたことを忘れると何が起こっているのかわからず慌ててしまう

テキスト出力

VBAからテキスト出力はこうしてましたが

Dim TestStr As String
TestStr = “テキスト文字”
Dim Num As Long
Num = FreeFile

Open “c:\TESTopen.txt” For Output As Num
Print #Num, TestStr
Close Num

こういう方法もあります

Dim Stream As ADODB.Stream

Set Stream = New ADODB.Stream
Stream.Mode = adModeReadWrite
Stream.Type = adTypeText
Stream.Charset = “Shift_JIS”
Stream.LineSeparator = adCRLF
Stream.Open

Stream.WriteText TestStr, adWriteLine
Stream.SaveToFile “C:\TESTstream.txt”, adSaveCreateOverWrite
 Stream.Close

openメソッドで出力できるのはshift_jisだけかな
adodb.streamは上のオプションshift_jisをUTF-8にすればUTF-8出力もできます。
ただオプションで出力テキストが微妙に違ってきます。
うちの環境では上と同じテキストを出力するにはこのオプションでした。