2011-05-11 73 views
0

我试图通过查看课程表中的教师ID和课程ID来搜索课程ID。其一个简单的查询,但是当推出我接收(错误3071)访问

(这个表达式的输入不正确,或者是太复杂,无法评价。例如,一个数字表达式可能包含太多的复杂元件。尝试通过分配部件简化表达(错误3071)

VB脚本的表达变量。我使用这个样子的。

Private Sub Course_ID_DblClick(Cancel As Integer) 

Dim x As Integer 

Dim y As String 

Dim z As Integer 

x = Me.Faculty_ID.Value 

Me.Course_ID.RowSource = "SELECT Course.[Course ID] FROM Course WHERE Course.[Course Name]=['Course']AND Course.[Faculty ID]='" & x & "'" 

End Sub 

回答

0

我觉得你得到这个消息,因为使用的是错误的分隔符和对象或者易混淆术语名称(其中字段内容“课程”和表名[课程]相同)

我想你的数据源是一个MS访问数据库。然后,您应该使用“(双引号)作为值分隔符(你必须在表达式内的标志双)文本,并没有对数字那么你的选择指令可能看起来像:

"SELECT Course.[Course ID] FROM Course WHERE Course.[CourseName]=[""Course""] AND Course[FacultyID]=" & x 

添加一个“debug.print Me.Course_ID.RowSource”来检查应该是一个最终的字符串:

SELECT Course.[Course ID] FROM Course WHERE Course.[CourseName]=["Course"] AND Course[FacultyID]= 3 
+0

Avcess支持单引号或双引号作为查询中的字符串分隔符 – phoog 2011-05-11 05:28:23

0

应该有你的周围字符串文字没有括号:

Me.Course_ID.RowSource = "SELECT Course.[Course ID] FROM Course WHERE Course.[Course Name]='xyz' AND ... 

此外,您还可以在访问查询中使用单引号或双引号作为字符串分隔符。