CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  数据库(包含打印,安装,报表)

用数据库字段填充组合框,各位帮忙看看

楼主laolv7403(无名氏)2005-08-01 18:04:50 在 VB / 数据库(包含打印,安装,报表) 提问

Dim   rs   As   New   ADODB.Recordset  
  Dim   cn   As   New   ADODB.Connection  
  Dim   cm   As   New   ADODB.Command  
   
  Private   Sub   Form_Load()  
   
   
          '这几段内容都差不多,有没有哪位知道更方便的实现方法  
          '第一段  
          cn.ConnectionString   =   "provider=sqloledb;server=1SG37FPBJ5G5NDX\MYSQLSERVER;database=lab;uid=冬;pwd=123456"  
          cn.Properties("Prompt")   =   adPromptComplete  
          cn.Open  
          rs.ActiveConnection   =   cn  
          rs.Open   "select   distinct   品名   from   检验项目",   ,   adOpenDynamic,   ,   adCmdText  
          Do   Until   rs.EOF  
          '用品名字段填充组合框combpm  
          '我用Additem填充组合框的时候,组合框顶部是空白的,  
          '要点下拉按钮才出来填充字段的内容,  
          '我想让组合框一出来就能看见填充字段的内容该怎么办  
                  combpm.AddItem   (RTrim(rs.Fields(0)))  
                  rs.MoveNext  
          Loop  
   
   
          '第二段  
          cm.ActiveConnection   =   cn  
          cm.CommandText   =   "select   distinct   规格   from   检验项目   where   品名=?"  
          cm.CreateParameter   ,   adChar,   adParamInput,   30  
          cm.Parameters(0).Value   =   combpm.Text  
          Set   rs   =   cm.Execute  
          Do   Until   rs.EO  
          '用规格字段填充组合框combgg  
                  combgg.AddItem   (RTrim(rs.Fields(0)))  
                  rs.MoveNext  
          Loop  
   
   
          '第三段  
          cm.CommandText   =   "select   distinct   方法依据   from   检验项目   where   品名=?   and   规格=?"  
          'cm.CreateParameter   ,   adChar,   adParamInput,   30              
          '上面这个参数如果与上一段的那个参数0一样,也是,   adChar,   adParamInput,   30  
          '需不需要再重新创建一下,还是只要简单的重新赋值就可以了  
          cm.CreateParameter   ,   adChar,   adParamInput,   20  
          'cm.Parameters(0).Value   =   combpm.Text  
          '如果不需要重新创建,这一段的参数0我还想赋给它上一段参数0的值,要不要重新赋值  
          cm.Parameters(1).Value   =   combgg.Text  
          Set   rs   =   cm.Execute  
          Do   Until   rs.EOF  
          '用方法依据字段填充组合框combffyj  
                  combffyj.AddItem   (RTrim(rs.Fields(0)))  
                  rs.MoveNext  
          Loop  
   
   
          '第四段  
          cm.CommandText   =   "select   distinct   检验项目   from   检验项目   where   品名=?   and     方法依据=?"  
          'cm.CreateParameter   ,   adChar,   adParamInput,   30  
          'cm.CreateParameter   ,   adChar,   adParamInput,   20  
          cm.CreateParameter   ,   adChar,   adParamInput,   30  
          'cm.Parameters(0).Value   =   combpm.Text  
          'cm.Parameters(1).Value   =   combgg.Text  
          cm.Parameters(2).Value   =combffyj   .Text  
          '一运行就报错,Run-time   error   "3265"     在对应所需名称或序数的集合中,未找到项目.  
          '按调试按钮后,黄底显示"cm.Parameters(2).Value   =combffyj   .Text"  
          '如果把这一行删掉,下一行就黄底显示  
          Set   rs   =   cm.Execute  
          Do   Until   rs.EOF  
          '用检验项目字段填充组合框combjyxm  
                  combjyxm.AddItem   (RTrim(rs.Fields(0)))  
                  rs.MoveNext  
          Loop  
   
   
          cm.CommandText   =   "select   distinct   质量标准   from   检验项目   where   品名=?   and   规格=?   and   方法依据=?and   检验项目=?"  
          'cm.CreateParameter   ,   adChar,   adParamInput,   30  
          'cm.CreateParameter   ,   adChar,   adParamInput,   20  
          'cm.CreateParameter   ,   adChar,   adParamInput,   30  
          cm.CreateParameter   ,   adChar,   adParamInput,   30  
          'cm.Parameters(0).Value   =   combpm.Text  
          'cm.Parameters(1).Value   =   combgg.Text  
          'cm.Parameters(2).Value   =   combffyj.Text  
          cm.Parameters(3).Value   =   combjyxm.Text  
          Set   rs   =   cm.Execute  
          txtzlbz.Text   =   RTrim(rs.Fields(0))  
          '用质量标准字段填充文本框txtzlbz  
          rs.Close  
   
  End   Sub 问题点数:10、回复次数:5Top

1 楼hicksys(乡下人)回复于 2005-08-02 00:31:26 得分 5

做成一个函数,然后调用喽!方便一点,不过效率一下~Top

2 楼laolv7403(无名氏)回复于 2005-08-02 14:46:57 得分 0

各位帮帮忙Top

3 楼wenhongL(三脚猫)回复于 2005-08-02 15:01:10 得分 0

你这样好像不能实现你想要的功能!Top

4 楼wenhongL(三脚猫)回复于 2005-08-02 15:06:21 得分 5

你的意思应该是这样吧!没有测试!!!  
  Dim   rs   As   New   ADODB.Recordset  
  Dim   cn   As   New   ADODB.Connection  
  Dim   cm   As   New   ADODB.Command  
   
  Private   Sub   combpm_Change()  
         
          cm.CommandText   =   "select   distinct   规格   from   检验项目   where   品名=?"  
          cm.CreateParameter   ,   adChar,   adParamInput,   30  
          cm.Parameters(0).Value   =   combpm.Text  
          Set   rs   =   cm.Execute  
          Do   Until   rs.EO  
          '用规格字段填充组合框combgg  
                  combgg.AddItem   (RTrim(rs.Fields(0)))  
                  rs.MoveNext  
          Loop  
   
  End   Sub  
   
  Private   Sub   combgg_Change()  
   
          '第三段  
          cm.CommandText   =   "select   distinct   方法依据   from   检验项目   where   品名=?   and   规格=?"  
          'cm.CreateParameter   ,   adChar,   adParamInput,   30  
          '上面这个参数如果与上一段的那个参数0一样,也是,   adChar,   adParamInput,   30  
          '需不需要再重新创建一下,还是只要简单的重新赋值就可以了  
          cm.CreateParameter   ,   adChar,   adParamInput,   20  
          'cm.Parameters(0).Value   =   combpm.Text  
          '如果不需要重新创建,这一段的参数0我还想赋给它上一段参数0的值,要不要重新赋值  
          cm.Parameters(1).Value   =   combgg.Text  
          Set   rs   =   cm.Execute  
          Do   Until   rs.EOF  
          '用方法依据字段填充组合框combffyj  
                  combffyj.AddItem   (RTrim(rs.Fields(0)))  
                  rs.MoveNext  
          Loop  
  End   Sub  
   
  Private   Sub   combffyj_Change()  
          '第四段  
          cm.CommandText   =   "select   distinct   检验项目   from   检验项目   where   品名=?   and     方法依据=?"  
          'cm.CreateParameter   ,   adChar,   adParamInput,   30  
          'cm.CreateParameter   ,   adChar,   adParamInput,   20  
          cm.CreateParameter   ,   adChar,   adParamInput,   30  
          'cm.Parameters(0).Value   =   combpm.Text  
          'cm.Parameters(1).Value   =   combgg.Text  
          cm.Parameters(2).Value   =   combffyj.Text  
          '一运行就报错,Run-time   error   "3265"     在对应所需名称或序数的集合中,未找到项目.  
          '按调试按钮后,黄底显示"cm.Parameters(2).Value   =combffyj   .Text"  
          '如果把这一行删掉,下一行就黄底显示  
          Set   rs   =   cm.Execute  
          Do   Until   rs.EOF  
          '用检验项目字段填充组合框combjyxm  
                  combjyxm.AddItem   (RTrim(rs.Fields(0)))  
                  rs.MoveNext  
          Loop  
  End   Sub  
   
  Private   Sub   combjyxm_Change()  
          cm.CommandText   =   "select   distinct   质量标准   from   检验项目   where   品名=?   and   规格=?   and   方法依据=?and   检验项目=?"  
          'cm.CreateParameter   ,   adChar,   adParamInput,   30  
          'cm.CreateParameter   ,   adChar,   adParamInput,   20  
          'cm.CreateParameter   ,   adChar,   adParamInput,   30  
          cm.CreateParameter   ,   adChar,   adParamInput,   30  
          'cm.Parameters(0).Value   =   combpm.Text  
          'cm.Parameters(1).Value   =   combgg.Text  
          'cm.Parameters(2).Value   =   combffyj.Text  
          cm.Parameters(3).Value   =   combjyxm.Text  
          Set   rs   =   cm.Execute  
          txtzlbz.Text   =   RTrim(rs.Fields(0))  
          '用质量标准字段填充文本框txtzlbz  
          rs.Close  
  End   Sub  
   
  Private   Sub   Form_Load()  
   
          '这几段内容都差不多,有没有哪位知道更方便的实现方法  
          '第一段  
          cn.ConnectionString   =   "provider=sqloledb;server=1SG37FPBJ5G5NDX\MYSQLSERVER;database=lab;uid=冬;pwd=123456"  
          cn.Properties("Prompt")   =   adPromptComplete  
          cn.Open  
          rs.ActiveConnection   =   cn  
          rs.Open   "select   distinct   品名   from   检验项目",   ,   adOpenDynamic,   ,   adCmdText  
          Do   Until   rs.EOF  
          '用品名字段填充组合框combpm  
          '我用Additem填充组合框的时候,组合框顶部是空白的,  
          '要点下拉按钮才出来填充字段的内容,  
          '我想让组合框一出来就能看见填充字段的内容该怎么办  
                  combpm.AddItem   (RTrim(rs.Fields(0)))  
                  rs.MoveNext  
          Loop  
    cm.ActiveConnection   =   cn  
  End   Sub  
         
   
   
   
   
   
   
   
   
   
   
   
  Top

5 楼laolv7403(无名氏)回复于 2005-08-03 15:33:30 得分 0

对,楼上理解的差不多,只是最后的Form_load()用我写的代替,意思就全了。  
   
  我想问的问题是:  
   
  1、Form_load()的这几段内容基本差不多,有没有更方便的实现方法,还是要重复代码?如果用函数的话,每一段的内容都要多加一个参数。  
   
  2、我用Additem填充组合框的时候,组合框顶部是空白的,要点下拉按钮才出来填充字段的内容,我想让组合框一出来就能看见填充字段的内容该怎么办  
   
  3、第三段中:上面这个参数如果与上一段的那个参数0一样,也是,   adChar,   adParamInput,   30,需不需要再重新创建一下,还是只要简单的重新赋值就可以了。如果不需要重新创建,这一段的参数0我还想赋给它上一段参数0的值,要不要重新赋值  
   
  4、第四段中:一运行就报错,Run-time   error   "3265"     在对应所需名称或序数的集合中,未找到项目.按调试按钮后,黄底显示"cm.Parameters(2).Value   =combffyj   .Text"。如果把这一行删掉,下一行就黄底显示。到底错在哪儿?是不是不支持这么多的参数?  
   
  Top

相关问题

  • winform 下 由bit类型数据库字段 填充的DATAGRIDCHECKBOX列的问题!!!!!!!!!!!!!
  • ::)access数据库中字段是日期和时间型,用DAO编程应该用什么类型的数据才能填充数据库中的字段。
  • ::)access数据库中字段是日期和时间型,用DAO编程应该用什么类型的数据才能填充数据库中的字段。
  • 数据库字段问题
  • 数据库字段问题
  • 数据库字段过滤
  • 数据库字段问题
  • 怎样把数据库表里记录的某个字段的值填充到combobox空间里?马上给分!
  • 新手,vc中如何把数据库的某个字段所有值显示到组合框中
  • 数据库中的OLE字段!!!!!!!!!!!!

关键词

  • 字段
  • 组合
  • 检验
  • 项目
  • 内容
  • 填充
  • combpm
  • cm
  • 参数
  • adchar

得分解答快速导航

  • 帖主:laolv7403
  • hicksys
  • wenhongL

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo