ADOX を使用して、閉じた Excel ファイルからフィールド名を Dictionary オブジェクトに取り込もうとしています。ただし、一部の列名は単一引用符で囲まれているか、一部は単一引用符でプレフィックスまたはサフィックスされています。
「グローバル ビット/エース」または「グローバル サム/ダン」または「グローバル サン サンズ」
後でレコードセットを開くことができず、コードでエラーが発生するため、これは頭痛の種です。
現在、ADOX を使用してフィールド名の名前を変更しようとすると、
「データベースは読み取り専用です」
それで、
Set cols = CreateObject("Scripting.Dictionary")
i = 0
j = 0
blnSingleQuotes = False
For Each fld In objCat.tables(sSheet(1) & "$").Columns
If InStr(1, "~" & UCase(fld.Name), "~" & UCase("Global")) > 0 Then
cols.Add CStr(i), fld.Name
i = i + 1
ElseIf InStr(1, "~" & UCase(fld.Name), "~'" & UCase("Global")) > 0 Then
If Right(UCase(fld.Name), 1) <> "'" Then
fld.name=replace(fld.name,"'","")
cols.Add CStr(i), fld.Name & "'"
i = i + 1
End If
End If
next fld
私の質問は、ファイルを開かずに ADOX を使用してファイルからそれらを削除するにはどうすればよいですか? この方法ではない場合、ファイルを開かずに代替手段はありますか?
PS: ファイルのサイズが非常に大きいため時間がかかるため、ファイルを開いていません。