Access 2010(32bit)がインストールされている(もしくはAccess2010以降の再配布可能なモジュールがインストールされていればいけると思う)のを前提としてかつOSはWin8,1の64ビット版
いろいろなサイトを参考にしてみてうまくいったのでメモ。
データベースに含まれているシステムテーブルでないテーブルのText型フィールドのみ対象。
メモなんでコメントなし。
こんな感じ。
いじょ!
いろいろなサイトを参考にしてみてうまくいったのでメモ。
データベースに含まれているシステムテーブルでないテーブルのText型フィールドのみ対象。
メモなんでコメントなし。
こんな感じ。
option explicit
const accsdbpath = "C:\hoge\hoge.accdb"
const dbByte = 2
dim sh, engine, args, e, cmd
set sh = createobject("wscript.shell")
if sh.environment("Process").item("PROCESSOR_ARCHITECTURE") <> "x86" then
if not wscript.arguments.count = 0 then
for each e in wscript.arguments
args = args & " """ & e & """"
next
end if
if instr(lcase(wscript.fullname), "wscript") > 0 then
engine = "wscript.exe"
else
engine = "cscript.exe"
end if
cmd = """" & sh.environment("process").item("windir") & "\syswow64\" & engine & """ """ & wscript.scriptfullname & """" & args
sh.run cmd
wscript.quit
else
main
end if
sub main()
dim dao, db, tdf, f, p,ip
set dao = createobject("DAO.DBEngine.120")
set db = dao.opendatabase(accsdbpath)
for each tdf in db.tabledefs
if tdf.attributes = 0 then
for each f in tdf.fields
if f.type = 10 then
on error resume next
f.properties("IMEMode") = 2
if err.number <> 0 then
err.clear: on error goto 0
set ip = f.createproperty("IMEMode", dbByte, 2)
f.properties.append ip
set ip = nothing
else
on error goto 0
end if
end if
next
end if
next
set db = nothing
set dao = nothing
msgbox "終了しました!"
end sub
いじょ!