我有以下命令对象:
ADODB::_CommandPtr pCmd("ADODB.Command");
pCmd->ActiveConnection = pConn;
pCmd->CommandType = ADODB::adCmdText;
pCmd->CommandText = L" select ID, NZ(PaymentAmount, 0) from Contracts;";
ADODB::_RecordsetPtr pRS = pCmd->Execute(NULL, NULL, ADODB::adCmdText);
Run Code Online (Sandbox Code Playgroud)
当我运行它时,它会报告NZ功能不存在的错误.
我自己研究,发现我不能NZ在ADO查询中使用.
ADO是否等同于此功能?
我准备用这个撕掉我的头发了.
Error Executing Database Query.
[Macromedia][SequeLink JDBC Driver][ODBC Socket][Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 3.
The error occurred in [WITHHELD]: line 19
17 : WHERE FNAME = #FORM.first#
18 : AND LNAME = #FORM.last#
19 : AND PASS = #FORM.pass#
20 : </cfquery>
21 :
SQLSTATE 07002
SQL SELECT * FROM JUDGES WHERE FNAME = [WITHHELD] AND LNAME = [WITHHELD] AND PASS = [WITHHELD]
VENDORERRORCODE -3010
DATASOURCE honors
Run Code Online (Sandbox Code Playgroud)
我已经阅读了一些类似的问题,其中有一些拼写错误,但我已经检查并重新检查拼写,甚至更改了列和表名,并再次尝试.
我试图在Access 2K7数据库中做一些更通用的东西.我有一个表单,我将一些信息传递给使用OpenArgs.我正在传递表单名称,子表单名称和字段名称,因此可以填充该字段.
我遇到了"重建"对该领域的引用的麻烦.我试过以下,但VBA不喜欢它:
Dim strForm, strField, strSubForm As String
Dim frm As Form
strForm = Left(Me.OpenArgs, InStr(Me.OpenArgs, "|") - 1)
Brk1 = Mid(Me.OpenArgs, InStr(Me.OpenArgs, "|") + 1)
strField = Left(Brk1, InStr(Brk1, "|") - 1)
strSubForm = Mid(Brk1, InStr(Brk1, "|") + 1)
X = "Forms!" & strForm
Y = X & "!" & strSubForm
Z = Y & "!" & strField
frm(Z) = Me.Calendar0.Value
Run Code Online (Sandbox Code Playgroud)
这个练习的目的是将日历的值(Me.Calendar0.Value)传递给子表单上的字段(Forms!strForm!strSubForm!strField).我只是无法弄清楚如何以VBA接受它的方式编写它.我得到一个"对象变量或没有设置块变量"错误.
当此行运行时,我在 Access 中收到溢出错误
intAT = Nz(DLookup("at_ID", "qryAT", "at_sc_ID=" & Me.sc_ID & " AND at_OT=0"), 0)
Run Code Online (Sandbox Code Playgroud)
如果我Debug.Print Nz(DLookup("at_ID", "qryAT", "at_sc_ID=" & Me.sc_ID & " AND at_OT=0"), 0)在该行之前添加,它会很好地打印 id 号,但在下一行的分配过程中仍然出错。
我还可以通过向查询添加一个条件来使其工作,该条件将所有结果限制为在特定日期和时间之前发生的结果。它只能将查询限制在该特定时间之前,而不是在更早的时间之后。如果包含该时间之后的任何记录,它将再次溢出。我查看了在那之后输入的数据,一切看起来都很好,但我不确定我应该寻找什么。在at_ID与导致它失败的记录相关联是32838没有什么帮助的。
我的数据存储表单有一个新模块 (AutoExec),用于在打开表单时测试与 SQL 服务器数据库的连接。只是它在打开时不会触发。我想知道我的代码中是否有什么东西导致了这个,这是我的第一个模块,所以我还不熟悉正确的形式。
Public Sub AutoExec()
Dim cnn As ADODB.Connection
Dim localrst As New ADODB.Recordset
Dim remoterst As New ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Open "Provider=SQLOLEDB; Data Source=DB\P003,49503; Initial Catalog=HRLearnDev;" _
& "User Id=USERNAME; Password=PASSWORD;"
If cnn.State = adStateOpen Then
MsgBox ("You have an established connection.")
Else
MsgBox ("Cannot connect to remote server. Data will be stored locally to CDData Table until application is opened again.")
End If
cnn.Close
Dim rst As New ADODB.Recordset
End Sub
Run Code Online (Sandbox Code Playgroud) 我创建了一个登录表单,当单击“打开数据库”按钮时会打开另一个表单。我试图在单击按钮打开另一个表单时关闭原始表单“UserInformation”。我正在尝试各种 VBA 代码,但似乎没有任何效果。我通过向导创建了按钮,然后将宏转换为 vba 代码。
Private Sub cmdOpenDatabase_Click()
If IsNull(Me.txtFirstName) Then
MsgBox ("Please enter First Name")
Me.txtFirstName.SetFocus
Cancel = True
Exit Sub
End If
If IsNull(Me.txtLastName) Then
MsgBox ("Please enter Last Name")
Me.txtLastName.SetFocus
Cancel = True
Exit Sub
End If
If IsNull(Me.txtEmployee) Then
MsgBox ("Please enter Employee ID")
Me.txtEmployee.SetFocus
Cancel = True
Exit Sub
End If
On Error GoTo cmdOpenDatabase_Click_Err
DoCmd.OpenForm "Standards", acNormal, "", "", , acNormal
cmdOpenDatabase_Click_Exit:
Exit Sub
cmdOpenDatabase_Click_Err:
MsgBox Error$
Resume cmdOpenDatabase_Click_Exit
End Sub
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用AutoIncrement为Yes的列创建一个表.这是我的查询不确定它有什么问题
CREATE TABLE testallcols(SOCycle Text(3), AutoKey integer AUTOINCREMENT NOT NULL, SOData LongBinary NOT NULL)
Run Code Online (Sandbox Code Playgroud)
如何将AutoKey列设置为自动增量整数?
我已经研究了所有的STACKOVERFLOW问题,但是无法使其正常工作。我有一个简单的表:

和形式:

我想从表T:ActityRoster中提取字段,并从表单中提取“活动日期”,然后将它们“添加”到表T:ActivityHistory中。

一个STACKOVERFLOW专家帮助了我一些代码,但它甚至没有设置第一个记录集:rsIn
Dim ActID As Integer, actDate As Date, val1 As Long, val2 As Long, val3 As Boolean, val4 As Currency
Dim db As Database, rsIn As Recordset, rsOut As Recordset
Dim strSQL As String
Set db = CurrentDb
ActID = Me.cboActivityName.Column(0)
strSQL = "SELECT * FROM T:ActivityRoster WHERE [ActivityID] = ActID"
Debug.Print strSQL
Set rsIn = db.OpenRecordset(strSQL, dbOpenDynaset, dbReadOnly)
rsIn.MoveLast
Set rsOut = db.OpenRecordset("T:AttendanceHistory", dbOpenDynaset, dbEditAdd)
rsOut.MoveLast
actDate = Me.ActivityDate.Value ' retrive the date from the form …Run Code Online (Sandbox Code Playgroud) 我试图在ACCESS 2013 VBA中运行以下SQL语句,但由于格式错误而导致错误(在这种情况下,我从语句结尾处得到"分号(;)缺失").有人可以告诉我,我在下面的代码中做错了吗?
Dim dbs As dao.Database
Set dbs = CurrentDb()
dbs.Execute "INSERT INTO TEMP2 ([Study_Date], [Created_By], [Part_Number],
[Upper_Tolerance], [Lower_Tolerance], [ID21_Number]) VALUES ([Study_Date],
[Created_By], [Part_Number], [Upper_Tolerance], [Lower_Tolerance], [ID21_Number])
FROM RAC_DATA_ENTRY
WHERE [RAC_CAP_VALS] = '" & Me.[RAC_CAP_VALS] & "'"
Run Code Online (Sandbox Code Playgroud) ms-access ×10
vba ×5
access-vba ×3
sql ×2
ado ×1
c# ×1
c++ ×1
coldfusion ×1
forms ×1
module ×1