您的位置:程序门 -> vb -> 数据库(包含打印,安装,报表)



能帮我写一个例子呀,是这样的,如:有一个数据库(db.mdb)中有一个表为employee(员工基本资料


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


能帮我写一个例子呀,是这样的,如:有一个数据库(db.mdb)中有一个表为employee(员工基本资料
发表于:2007-12-13 11:50:18 楼主
能帮我写一个例子呀,是这样的,如:有一个数据库(db.mdb)中有一个表为employee(员工基本资料如工号,姓名等项)另一个表为base(其中有工号,住址,电话,qq号,生日,身份证等项),两个表中只有一个工号项是相同的,现在用vb自带的报表功能做一个查询软件,使两个表中的数据同时显示在一个报表中,效果为:姓名,工号、生日、身份证、住址、电话、qq号。
        也可以这样理解,如:399是李某的工号,把存放在base表中的工号为399的全部资料一同与放在employee表中对应的工号为399的姓名项一同列在报表中。本人不会写了,如何建立联系(不要用查询检索建立索引文件的办法,因为这个库没有建立索引文件,希望用其它办法,建立索引文件的办法是可以做到这点的,我用过可以成功,现在想,有没有其它办法或语句可以解决这个问题的)。
发表于:2007-12-13 13:41:461楼 得分:0
adodc.recordstring="select   *   from   b1   join   inner   b2   as   b2.id=b1.id"
发表于:2007-12-13 14:05:552楼 得分:0
select   *   from   employee   inner   join   base   on   employee.工号=base.工号
发表于:2007-12-13 21:04:063楼 得分:0
好像不可以。

下面为我的代码:
'==========================================
option   explicit
'dim   rstdh_codedict   as   adodb.recordset
dim   rstfind   as   adodb.recordset
dim   rstfind2   as   adodb.recordset
dim   temp1   as   adodb.recordset
public   main_ztname   as   string
public   main_path   as   string
public   gcomputername   as   string

public   mycon   as   adodb.connection

private   sub   command1_click()

        main_path   =   app.path
        main_ztname   =   main_path   &   "\mydb.mdb"
        set   mycon   =   new   adodb.connection
        mycon.cursorlocation   =   aduseclient
        mycon.open   "provider=microsoft.jet.oledb.4.0;data   source="   &   main_ztname   &   ";jet   oledb:database   password=828"
     
                  set   rstfind   =   new   adodb.recordset
                  set   rstfind2   =   new   adodb.recordset
  '暂停   rstfind.open   "select   id,krz_id,xm,rq,jfje,dfje   into   temp1   from   krmxz",   mycon,   adopenstatic,   adlockreadonly
  '暂停   rstfind2.open   "select   id,krxm,krda_id   from   krz",   mycon,   adopenstatic,   adlockreadonly
  '暂停   rstfind2.open   "select   id,krxm,krda_id   update   temp1   from   krz",   mycon,   adopenstatic,   adlockreadonly

 
  rstfind2.open   "select   *   from   krz   inner   join   krmxz   on   krz.id     =krmxz.id",   mycon,   adopenstatic,   adlockreadonly
 
  rstfind.open   "select   *   from   krmxz",   mycon,   adopenstatic,   adlockreadonly          
                                     
              reportmod.sections(3).controls("text2").datafield   =   "dfje"
              reportmod.sections(3).controls("text2").visible   =   true
              reportmod.sections(3).controls("text1").datafield   =   "krxm"
              reportmod.sections(3).controls("text1").visible   =   true
              reportmod.sections(3).controls("text3").datafield   =   "fh"
              reportmod.sections(3).controls("text3").visible   =   true
              reportmod.sections(3).controls("text4").datafield   =   "rq"
              reportmod.sections(3).controls("text4").visible   =   true
                                     
                                set   reportmod.datasource   =   rstfind
                                reportmod.show'显示报表窗体
end   sub

'==========================================

看能不能帮我改改代码,谢谢。
发表于:2007-12-14 21:57:394楼 得分:0
对在同一个数据库中两个表内的项进行查询操作的问题我已经解决了,正确代码如下:
下面为我的代码:  

dim   rstfind   as   adodb.recordset
public   main_ztname   as   string
public   main_path   as   string
public   mycon   as   adodb.connection

private   sub   command1_click()
dim   sqlstr   as   string
        main_path   =   app.path
        main_ztname   =   main_path   &   "\mydb.mdb"
        set   mycon   =   new   adodb.connection
        mycon.cursorlocation   =   aduseclient
        mycon.open   "provider=microsoft.jet.oledb.4.0;data   source="   &   main_ztname   &   ";jet   oledb:database   password=828"
     
                  set   rstfind   =   new   adodb.recordset

  sqlstr   =   "select   *   from   krmxz   left     join   (select   *   from     krz)   as   krz     on   krz.id     =krmxz.id"         '关键是这一句

  rstfind.open   sqlstr,   mycon,   adopenstatic,   adlockreadonly
                              set   reportmod.datasource   =   rstfind
      with   reportmod  
          reportmod.sections(3).controls("text2").datafield   =   "dfje"
          reportmod.sections(3).controls("text2").visible   =   true
          reportmod.sections(3).controls("text1").datafield   =   "krxm"
          reportmod.sections(3).controls("text1").visible   =   true
          reportmod.sections(3).controls("text3").datafield   =   "fh"
          reportmod.sections(3).controls("text3").visible   =   true
          reportmod.sections(3).controls("text4").datafield   =   "rq"
          reportmod.sections(3).controls("text4").visible   =   true
      end   with
          reportmod.show
end   sub
'=================================================

现在有新的问题了,如果是在两个不同的数据库中的表进行查询操作,如何处理了。

    "select   *   from   aa表   left   join   (select   *   from     bb表)   as   bb表     on   bb表.id     =aa表.id"      

    关键还是这一句如何改了。假如说aa库是在数据库mydb.mdb中,bb表在mydb2.mdb中
就肯定不是上面这句语句了。请各位指教。。qq:40218719  


发表于:2007-12-14 22:01:155楼 得分:0
如何给分你们呀,我还不太会操作。
发表于:2007-12-15 20:19:116楼 得分:0
"select   *   from   aa表   left   join   bb表   on   bb表.id=aa表.id"
发表于:2007-12-16 08:44:557楼 得分:0
给分:   管理帖子,然后就看到了


快速检索

最新资讯
热门点击