|
こんにちは よろしくお願いいたします
サーバーにDT.MDB
ローカルPC 1人だけに、APP1_DT更新.MDB
ローカルPC 10人程度に、APP2_参照.MDB
で運用したいと思っています
Q1
下記コード(APP1_DT更新.MDB)で、
追加のみ dbs.Execute "INSERT INTO
がエラーは出ないのですが、レコード追加できません
注)追加クエリの実行は出来ています
どうしたらよいでしょうか
上記は
ローカルのテーブルのレコードをサーバーに追加しています
Private Sub Test2()
Dim dbs As DAO.Database
Dim RT As Recordset
On Error Resume Next
'Set dbs = OpenDatabase("F:\db1.mdb")
'Set dbs = OpenDatabase(LC_get_path, True, False)
'Set dbs = OpenDatabase(LC_get_path, True)
Set dbs = OpenDatabase(LC_get_path, Options:=True)
Select Case Err.Number
'エラーなし
Case 0
Set RT = dbs.OpenRecordset("DT02_PJ_DT", dbOpenTable)
'追加1
'下記成功
'RT.AddNew
' RT![id] = "999777"
'RT.Update
'RT.Close
'追加2
'INSERT INTO DT02_PJ_DT IN '\\sv\PJ_DT.mdb' SELECT TmpT_PJ_DT.* FROM TmpT_PJ_DT;
'dbs.Execute "DELETE DT02_PJ_DT.*, DT02_PJ_DT.id FROM DT02_PJ_DT IN '\\sv\PJ_DT.mdb' WHERE DT02_PJ_DT.id="1132002"; INSERT INTO Customers SELECT * FROM [New Customers];"
'追加クエリはOKだが下記はSCCESSだが実際は駄目 ←Q1
'dbs.Execute "INSERT INTO DT02_PJ_DT IN '\\sv\PJ_DT.mdb' SELECT TmpT_PJ_DT.* FROM TmpT_PJ_DT;"
'仕方がないので 追加したが 警告ダイアログがでる
Application.Echo False
DoCmd.OpenQuery "追加クエリ1"
Application.Echo True
'レコード削除
'DELETE DT02_PJ_DT.*, DT02_PJ_DT.id FROM DT02_PJ_DT IN '\\sv\PJ_DT.mdb' WHERE DT02_PJ_DT.id="1132002";
'下記成功
'dbs.Execute "DELETE DT02_PJ_DT.*, DT02_PJ_DT.id FROM DT02_PJ_DT IN '\\sv\PJ_DT.mdb' WHERE DT02_PJ_DT.id='1132003';"
Debug.Print "success"
'排他モードで開かれていた場合
Case 3045
'MsgBox Err.Description
Debug.Print Err.Description
GoTo ExitProc
'その他のエラー
Case Else
'MsgBox Err.Description
Debug.Print Err.Description
GoTo ExitProc
End Select
On Error GoTo 0
ExitProc:
dbs.Close
Set dbs = Nothing
End Sub
Q2
追加クエリを
Application.Echo False
DoCmd.OpenQuery "追加クエリ1"
Application.Echo True
としているのですが
レコード追加の警告が出てしまいます
どうせれば出なくなりますか
Q3 Test2のサーバーMDBにレコード追加する APP1_DT更新.MDBは
1人しか使用しません
APP2_参照.MDBでは、リンクテーブルではなく
フォームのレコードソースに
DB.OpenRecordset(strSql, dbOpenSnapshot)
で参照のみでの使用となっています
このような運用であれば、破損の心配は無いような気もしますが
どうなんでしょう
注意点等あればアドバイスよろしくお願いいたします
|
|