2017-05-17 3 views
0

MS Access 2013をインポートするまでは正常に実行された2010年のMS Accessアプリケーションがあります。新しいレコードを挿入する。フォームはADODB.Recordsetsを使用します。 #Errorは元のデータに戻った各フィールドをクリックするまで続きます。データ入力フォームは、前のレコードのほとんどの列に#errorを表示します

ベンダーの更新後に新規レコード
RowID Vendor Ticket
1 DUFFERIN 12345
2 LAFARGE 54321
3 MILTON

のベンダーを更新する前に
RowID Vendor Ticket
1 DUFFERIN 12345
3 #ERROR #ERROR
3 MILTON 123

私の接続文字列

ConnectADO = "Data Provider=SQLOLEDB.1" & _
";Data Source=" & TMServerName & _
";Initial Catalog=" & TMDatabaseName & _ ";Persist Security Info=False " & _
";user id=" & TMUserName & _
";password=" & TMPassword
Cn.Provider = "MSDataShape" Cn.CommandTimeout = 120 Cn.ConnectionString = ConnectADO Cn.Open

私のカーソルをセットアップ

Set rs = New ADODB.Recordset rs.CursorType = adOpenKeyset
rs.CursorLocation = adUseClient
rs.LockType = LockType
rs.ActiveConnection = Cn
rs.Open Sql

+0

コードポストは、そのフォーマットを保有していませんでした。ベンダー更新前およびベンダー更新後は、表が3列、3レコードがダウンしています。 –

+0

I RowID、Vendor、Ticket Fieldsを含む単一のフォームにアプリを縮小しました。私はオープンコネクション関数とオープンレコードセット関数を追加しました。フォームのロードイベントから呼び出されました。データは表示されますが、挿入動作は持続します。 Dll呼び出しは、通常の4つのADO6.1です。 MSAcces2013は32ビットバージョンです。私はちょうど私の心の外に出ています。 –

+0

「MS Access 2013へのインポート」とはどういう意味ですか? 2010年のdbを2013年にインポートする必要はありません。2013年に作成されたdbをインポートなしで実行できるようにするには、2010年のファイルを開くだけです。 – June7

答えて

0

私は最終的にこれを考え出しました。 フォームの挿入が発生したときにADO Active Connectionが開いている場合、#エラー動作が発生します。接続が閉じている場合はすべてが良好です。挿入と更新はまだ発生します。したがって、できるだけ早く接続を閉じてください。私はこれを好きでした。 (Cnn.RecordsetOpen機能は、カスタムで、ADODBレコードopen文の前にそれでconnection.open文を持っています。)文字列としてエラー後藤Standard_Err 薄暗いTSQL ミーをセットに

「フォームのLoadイベント サブ負荷 。レコードセット= Cnn.RecordsetOpen(SQL) Standard_Exit: Cnn.connection.close 出口サブ Standard_Err: MSGBOX err.description 再開Standard_Exit End Subの

関連する問題