MS Accessテーブルから、MATLABにデータを読み込み、ActiveXサーバ経由で非常にうまく動作するコードがあります。私は今、SQL Serverに接続されたアクセスリンクテーブルからデータを読み取るために同じコードを使用しようとしているが、エラーを取得しています:MS Accessフロントエンド経由でMATLABのSQL Serverからレコードセットを開く方法
Invoke Error, Dispatch Exception: Source: DAO.Database Description: You must use the dbSeeChanges option with OpenRecordset when accessing a SQL Server table that has an IDENTITY column. Help File: jeterr40.chm Help Context ID: 4c5966
をので、問題のテーブルがIDENTITY列があり、私が必要OpenRecordsetで 'dbSeeChanges'オプションを指定します。私の質問は、どのようにこのオプションを指定するのですか?私はVBAでそれを行う方法のオンラインの例をたくさん見ることができますが、それはMATLAB互換ではありません。ここに私のコードだ:
% Setup environment
app = 'Access.Application';
DBAddress = 'O:\testData.accdb';
% Load an Activex server for Access
try
svr = actxGetRunningServer(app);
catch err
svr = actxserver(app);
end
% Load the required database file
accessDB = svr.DBEngine.OpenDatabase(DBAddress);
% Query the database for the required records
sql_querry = 'SELECT * FROM dbo_PatientMeasurementResults;';
rs = accessDB.OpenRecordset(sql_querry);
私は明白なことを試してみたが、これは動作しません:
rs = accessDB.OpenRecordset(sql_querry,'dbSeeChanges');
を使用 'dbSeeChanges'番号('のConst dbSeeChanges = 512(&H200) ')です。あなたは 'rs = accessDB.OpenRecordset(sql_querry、dbSeeChanges);を試みましたか? (または定数512で) – Andre
ありがとう@Andre。 'dbSeeChanges = 512'は私に' Invoke Error(Description:Invalid argument。) 'エラーを出しましたが、興味深いことに' dbSeeChanges = 4'が問題を解決しました。しかし、それがなぜうまくいったのかまだわからない! – 4Oh4