64bit Windows のコンパネでは 32bit ODBC の設定ができない
Access2000 Adp のCommandTimeout
CurrentProject.Connection.CommandTimeOut で設定してもダメなようです。
Dim ADOCmd As ADODB.Command Set ADOCmd = New ADODB.Command With ADOCmd .CommandText = "xxx" .ActiveConnection = CurrentProject.Connection .CommandTimeout = 0 .Execute End With Set ADOCmd = Nothing
ConnectionオブジェクトでExecuteせず、Commandオブジェクトで。
管理者ユーザーでログオンしているのにAdministraor権限を要求される場合
普通にコントロールパネルを覗いただけでは存在していないように見える Administrator というアカウントを見えるようにしてやればよいようです。
- [スタート]
- [コンピューター]を右クリック
- [管理]
- [ローカルユーザーとグループ]
- [ユーザー]
Windows 7 で 簡単 に Administrator を 有効 にする方法 | Apple Voice
- ユーザー『Administrator』を右クリック
- [プロパティ]
- 「アカウントを無効にする」のチェックをはずす。
どうしてもODBC接続できないときに調べ忘れそうなこと
こんなこともあるよ、という意味でメモ。
SQL Server側のプロパティ(リモート接続許可、権限など)はキチンとできている、
構成マネージャーのTCP/IP設定、FWのポート開け、などなど
心当たりの設定はキチンとできているにも関わらず、ODBC接続に失敗する場合、
[コントロールパネル] - [管理ツール] - [データソース(ODBC)] を開いて、
ユーザーDSN
と、
システムDSN
に、同名で構成違いのDSNが存在していないかチェックしてみましょう。
Access2010の [外部データ] - [ODBCデータベース] -(略)- [データソースの選択] - [新規作成]ボタン
から作成したデータソースは、ユーザーDSNに作成されると思います。
コンパネの管理ツールから作成するときはいつも、システムDSNに作成するので、ユーザーDSNの存在に気がつかず
なかなか原因がつかめず時間を無駄にしてしまいました。
ソリューションパッケージウィザードで追加のインストール
パッケージ内の \Files\Setup\Setup.ini [ChainedInstall_n]オプションに追加する。
列を追加するとき、既に存在するかチェック
IF EXISTS(SELECT * FROM sys.columns WHERE Name = N'ColumnName' AND Object_ID = OBJECT_ID(N'TableName')) /* 存在するときの処理 */ ELSE /* 存在しないときの処理 */