如何实现vb中组合框的下拉列表项目与ACCESS数据库相应表的链接?我做的时流水号重码检测系统
如何实现vb中组合框的下拉列表项目与ACCESS数据库相应表的链接?项目名就是表名有二个文本框和一个组合框,text1内容为开始流水号,text2的内容为结束流水号,co...
如何实现vb中组合框的下拉列表项目与ACCESS数据库相应表的链接?项目名就是表名
有二个文本框和一个组合框,text1内容为开始流水号,text2的内容为结束流水号,combo1的内容为机种名,就是说我选中组合框中的哪个机种名,就能将文本框中的内容存储到相应的表中(如果没有记录就存到表中,有记录就显示重码!),组合框的机种名就是对应的表名!有六百多个机种,也就有六百多个表,
比如表名为PBM01,PBM02,PBM03,PBM0K,PBM1C,PBM00,PBM04,PBM05,PBM06,PBM07,PBM08,PBM09,PBM0A,PBM0B,PBM0C,PBM0D,PBM0E,PBM0F,PBM0G,PBM0H,PBM0L,PBM0M,PBM0N,PBM0P,PBM0Q
PBM0R,PBM0S,PBM0T,PBM0U,PBM0V,PBM0W,PBM1A,PBM1D,PBM1G,PBM2T,PBM0j,pc001,pc002等等,我现在用select case 选择语句,比如
我在combo1中选择pbm01,然后就执行一个case语句,将文本框的内容存到pbm01这个表中,我有六百多个表,就要用六百多个case 语句,当我用到一百来个这样的语句时,运行就出现编译错误,过程太长!
每一个case语句都差不多,只有机种名和表名不一样
有没有一个好的办法解决这个问题,程序怎么写啊?请高手帮忙指点一下,急用!!!
其中选择分支case语句如下:
Private Sub cmdOK_Click()
Dim str1 As String
Dim str2 As String
Dim str3 As String
str1 = UCase(Trim(txtNewUser(0).Text))
str2 = UCase(Trim(txtNewUser(1).Text))
str3 = UCase(Trim(Combo1.Text))
'声明ADODB.Recordset对象变量
Dim objRecordset As ADODB.Recordset
Select Case str3
'选表pbm01
Case "PBM01"
'查询流水号是否存在
strSQL = "select * from pbm01 where mid(jslsh, 4, 8)>='" & Mid(str1, 4, 8) & "' "
Set objRecordset = ExecuteSQL(strSQL, strMsgText)
'如果流水号存在
If objRecordset.EOF = False Then
MsgBox " 测试不过,有重码!"
Exit Sub
End If
'如果流水号不存在,添加新流水号
strSQL = "select * from pbm01"
我根据条码的大小判断是否重码的,只比较条码的第四位开始的8个字符,比如条码为dg70412ddddffffa1,0是年份,41是周,2是星期,dddd是变动流水号,ffff是ecode,a是版本1是变量,能不能说具体点过程和引用我不是很 展开
有二个文本框和一个组合框,text1内容为开始流水号,text2的内容为结束流水号,combo1的内容为机种名,就是说我选中组合框中的哪个机种名,就能将文本框中的内容存储到相应的表中(如果没有记录就存到表中,有记录就显示重码!),组合框的机种名就是对应的表名!有六百多个机种,也就有六百多个表,
比如表名为PBM01,PBM02,PBM03,PBM0K,PBM1C,PBM00,PBM04,PBM05,PBM06,PBM07,PBM08,PBM09,PBM0A,PBM0B,PBM0C,PBM0D,PBM0E,PBM0F,PBM0G,PBM0H,PBM0L,PBM0M,PBM0N,PBM0P,PBM0Q
PBM0R,PBM0S,PBM0T,PBM0U,PBM0V,PBM0W,PBM1A,PBM1D,PBM1G,PBM2T,PBM0j,pc001,pc002等等,我现在用select case 选择语句,比如
我在combo1中选择pbm01,然后就执行一个case语句,将文本框的内容存到pbm01这个表中,我有六百多个表,就要用六百多个case 语句,当我用到一百来个这样的语句时,运行就出现编译错误,过程太长!
每一个case语句都差不多,只有机种名和表名不一样
有没有一个好的办法解决这个问题,程序怎么写啊?请高手帮忙指点一下,急用!!!
其中选择分支case语句如下:
Private Sub cmdOK_Click()
Dim str1 As String
Dim str2 As String
Dim str3 As String
str1 = UCase(Trim(txtNewUser(0).Text))
str2 = UCase(Trim(txtNewUser(1).Text))
str3 = UCase(Trim(Combo1.Text))
'声明ADODB.Recordset对象变量
Dim objRecordset As ADODB.Recordset
Select Case str3
'选表pbm01
Case "PBM01"
'查询流水号是否存在
strSQL = "select * from pbm01 where mid(jslsh, 4, 8)>='" & Mid(str1, 4, 8) & "' "
Set objRecordset = ExecuteSQL(strSQL, strMsgText)
'如果流水号存在
If objRecordset.EOF = False Then
MsgBox " 测试不过,有重码!"
Exit Sub
End If
'如果流水号不存在,添加新流水号
strSQL = "select * from pbm01"
我根据条码的大小判断是否重码的,只比较条码的第四位开始的8个字符,比如条码为dg70412ddddffffa1,0是年份,41是周,2是星期,dddd是变动流水号,ffff是ecode,a是版本1是变量,能不能说具体点过程和引用我不是很 展开
展开全部
在存储过程中定义
declare @sql varchar(8000)
如果只是表厅敬名不同,就把表名当作存储过程的变量传递进来,在过程中拼接语笑宽句
最后exec(@sql)就可以实现查询.
其他小的不同也可以用变量传参解碰伏亮决.
declare @sql varchar(8000)
如果只是表厅敬名不同,就把表名当作存储过程的变量传递进来,在过程中拼接语笑宽句
最后exec(@sql)就可以实现查询.
其他小的不同也可以用变量传参解碰伏亮决.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public sub test(byval tablename as string)
……
strSQL = "select * from " & tablename & "where mid(jslsh, 4, 8)>='" & Mid(str1, 4, 8) & "' "
Set objRecordset = ExecuteSQL(strSQL, strMsgText)
'如冲旁稿果流水号存在
If objRecordset.EOF = False Then
MsgBox " 测试不启搭过,有重码!"散孝
Exit Sub
End If
……
end sub
……
strSQL = "select * from " & tablename & "where mid(jslsh, 4, 8)>='" & Mid(str1, 4, 8) & "' "
Set objRecordset = ExecuteSQL(strSQL, strMsgText)
'如冲旁稿果流水号存在
If objRecordset.EOF = False Then
MsgBox " 测试不启搭过,有重码!"散孝
Exit Sub
End If
……
end sub
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询