我正在使用vba访问和SQL服务器。我有一个表单,其中有一个名为Material ID
的字段,带有空格。现在,我试图在Store Procedure中传递它,但我不确定如何实际传递它。我一直在努力的代码是:
If frm.Tag Then
strFilter = "usp_MovePending '" & UserStr & "'"
strFilter = strFilter & "," & frm!MaterialID
DB.QueryDefs("qryMovePending").Connect = SQLConnectString
DB.QueryDefs("qryMovePending").ReturnsRecords = False
DB.QueryDefs("qryMovePending").sql = strFilter
DB.QueryDefs("qryMovePending").Execute dbFailOnError
End If
在上面的代码中,我使用frm!MaterialID
没有空格,这显然给我一个错误Microsoft access can't find the field 'MaterialID' referred to in your expression
。当我保留[frm!Material ID]
空格时,它不会返回任何内容。我也尝试保持单引号,但它返回单引号没有价值。请帮忙。
答案 0 :(得分:1)
尝试使用方括号作为分隔符...
import os
import xlwt
import xlrd
index = 0
workbook = xlwt.Workbook()
Testsheet = workbook.add_sheet('test')
row=input()
col=input()
path= 'U:\SWEModelConstruction\Milk'
for root,dirs,files in os.walk(path):
xlsfiles=[ _ for _ in files if _.endswith('.xls') ]
for xlsfile in xlsfiles:
wb = xlrd.open_workbook(os.path.join(root,xlsfile))
n = len(wb.sheets())
for s in range(n) :
sheet = wb.sheet_by_index(s)
data=sheet.cell(row,col).value
Testsheet.write(index, 0, data)
index=index+1
workbook.save('Test.xls')
答案 1 :(得分:0)
我对Access对象模型不太熟悉,但在VBA / VB6中, bang表示法 foo!bar
是显式表示法的简写:
foo("bar").Value
换句话说,frm!Foobar
是这方面的简写:
frm("Foobar").Value
所以你会这样做:
frm("Material ID").Value
答案 2 :(得分:0)
几乎可以肯定地添加了一个下划线 - 尝试使用Me.Material_ID或Me。[Material ID]来引用实际的表单控件名称。值是默认属性