2

後にフィールドを追跡できる監査証跡を作成する必要がINSERT INTOありますが、「values」の式がフィールドに入力するために表す変数を取得できず、の式のみを取得できますVALUES。たとえば、数値を含む2つのエントリは数値を示し、他のエントリはたとえば次のような文字列を示します。Form.RecordSource = clientName

db.Execute "INSERT INTO tblAudit ([RecordID], [AuditWho], [AuditWhen], [AuditWhat],     [AuditFrom], [AuditTo]) VALUES ('1', '2', 'Now()', 'Form.RecordSource = clientName' , ' Me.ClientName.Value ', '  Me.clientNameTextBox.Value  ')"
4

2 に答える 2

3

少なくとも、次のようなことをする必要があります。

Dim SQL as string

SQL = "INSERT INTO tblAudit ([RecordID], [AuditWho], [AuditWhen], [AuditWhat],     [AuditFrom], [AuditTo]) VALUES ('1', '2','" & Now() & "', 'ClientName' , '" & Me.ClientName.Value & "', '" & Me.clientNameTextBox.Value & "')"

db.Execute SQL

より「堅牢」にするには、挿入を実行する前に、変数AuditFromAuditTo値を宣言し、入力されたデータが「OK」であることを検証する必要があります。

Dim SQL as string
dim strAuditFrom as string
Dim strAuditTo As String

strAuditFrom = Me.ClientName.Value & ""
strAuditTo = Me.ClientNameTextBox.Value & ""

if strAuditTo = vbNullString then
  'Alert the user or throw an error perhaps?
end if

sql = "INSERT INTO tblAudit ([RecordID], [AuditWho], [AuditWhen], [AuditWhat],   [AuditFrom], [AuditTo]) VALUES ('1', '2','" & Now() & "', 'ClientName' , '" &strAuditFrom & "', '" & strAuditTo & "')"

db.Execute sql
于 2012-10-24T20:35:48.627 に答える
1

単一のqoutesを使用して、挿入するテキストを定義しています。コントロールから値を取得してクエリに含めるには、double qouteを使用して文字列をエスケープし、文字列をアンパサンドで連結し、コントロールの値を見つけて、文字列をampsandとdoubleqouteで続行する必要があります。例えば:

db.Execute "INSERT INTO tblOne (Field1, Field2) VALUES ('literal text','" & ctlSomething & "')"
于 2012-10-24T20:38:49.810 に答える