アクセスフロントエンドを維持しながら、DBをAccessバックエンドからSQL Serverバックエンドに移動しています。テーブルの1つに、そのPKのレプリケーションIDが設定されていました。アクセスDBは、Accessが自動的に新しいGUIDを生成するため、PKフィールドを参照せずにこのテーブルに値を挿入できます。MS AccessからGUID pkを使用してSQL Serverテーブルに挿入
このテーブルに挿入するレコードを作成し、リンクされたSQL Serverバージョンのテーブルでは機能しない関数があり、このreplcationIDフィールドと何か関係があると確信しています。 SQL Serverでは、データ型 'uniqueidentifier'としてインポートされました。関数が実行されると、エラーは返されませんが、何も挿入されません。
これをパススルーに変更せずに動作させる方法があるかどうかを知りたいと思います。新しいレコードを挿入するときに新しいGUIDを生成するようにSQL Serverに指示するにはどうすればよいですか?あなたが追加することができます
注意点として、PKフィールドがPurchaseIDと呼ばれ、VBAで現在参照されていません(それがautoに使用するので、このフィールド用に生成)
Public Sub BuildReorderRecord(Market As String, MPID As String, FloorsetID As String)
Dim values As String
Dim sql As String
Dim P3ID As String
Dim Username As String
Dim dt As String
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT ID FROM tblAttributes WHERE MPID = """ & MPID & """")
'Get P3ID and auditing values
dt = Now()
Username = Environ("USERNAME")
P3ID = rs![ID]
'build record values string
values = """" & P3ID & """, """ & Market & """, """ & MPID & "', """ & FloorsetID & """"
values = values & ", #" & dt & "#, """ & Username & """, #" & dt & "#, """ & Username & """"
'build sql string
sql = "INSERT INTO tblReorders (P3ID, country, mpid, floorsetID"
sql = sql & ", CreateDate, CreatorUsername, ChangeRecord_Timestamp, ChangeRecord_Username)" & vbNewLine
sql = sql & "VALUES(" & values & ")"
'insert the new record
db.Execute sql
Set db = Nothing
Set rs = Nothing
End Subの
私は、SQL文字列でNEWIDを()を使用してみましたが、アクセスがdb.execute文を実行したとき、私はエラーを取得:「未定義関数は、式の中で 『NEWID』 – ArcherBird