data1.recordset("ID").value=trim(rst!(string("ID")))

解决方案 »

  1.   

    用简单的几条语句行吗?比如可以这样:set data1.recordset=rstdata1.recordsource=" select ....."
      

  2.   

    这是最直接的方法,懒得去查sql功能
    sub(rst as recordset,data1 as recordset)
    dim array1() as string
    dim i as integer
    i=0
    rst.movefirst
    while not rst.recordset.eof
    array1(i)=cstr(rst[ID])
    i=i+1
    rst.movenext
    wend
    while not data1.recordset.eof
    if i<=data1.recordcount 
    data1![str]=array1(i)
    i=i+1
    end if
    data1.recordset.movenext
    wend
    end sub
      

  3.   

    更正:
    sub(rst as recordset,data1 as recordset)
    dim array1() as string
    dim i as integer
    i=0
    rst.movefirst
    while not rst.eof
    array1(i)=cstr(rst[ID])
    i=i+1
    rst.movenext
    wend
    i=0
    while not data1.recordset.eof
    if i<=data1.recordcount 
    data1![str]=array1(i)
    i=i+1
    end if
    data1.recordset.movenext
    wend
    end sub
      

  4.   

    我提个好建议,在得到rst这个记录集前是否要执行SQL语句,在这个语句中用SQL的函数将ID字段转换成字串型,不就省去了后面的麻烦吗,比如select to_char(id) id1,name....
      

  5.   

    我提个好建议,在得到rst这个记录集前执行SQL语句时,用函数强制转换ID为字串型不就可以了。后面的麻烦就全省了。
    比如select to_char(id) id1 ,name .....
      

  6.   

    to cornerxu(面) 帮忙帮到底啊。
      

  7.   

    先问一下,你的结果集是通过SQL查询出来的,还是直接用的数据绑定控件。还有,你用的数据库是什么?
      

  8.   

    数据库是access
    rst=dbs.openrecordset(...)
    set data1.recordset=rst
      

  9.   

    SORRY
    首先,我说的SQL语句做手脚指的是类似于 
    select to_char(id) id1 ,name ..... 这样一个语句,这是ORACLE的,你可以查一查ACCESS的转换类型函数,
    如果有问题,可以联系我[email protected]
      

  10.   

    可是怎样执行SQL语句呢?
      

  11.   

    rst=dbs.openrecordset(sql)
    set data1.recordset=rst 
    你不是会吗?
      

  12.   

    rst是全局变量,还有用处,只是在这个Form中显示的时候ID改成string,
    所以我问的是怎样从rst中得到Data1.recorset,其中ID为String.
      

  13.   

    全局变量是死的,人是活的,你定义一个局部变量rstTemp,重新执行SQL语句并不麻烦吧rstTemp=dbs.openrecordset(sql)
    set data1.recordset=rstTemp 
      

  14.   

    谢谢你的提醒。
    可是recordset就无法执行SQL语句吗?
    我记得好象有.sql或.execute方法可以用啊?
    但是细节不清楚了。
      

  15.   

    我知道的SQL_SERVER是可以用一个SQL语句写的,你的问题无非是一个关联更新的问题

    1.
    update table1 a SET A.FIELD1=B.FIELD1 FROM 
    TABLE2 B WHERE A.ID=B.ID AND A.FIELD1<1002.update table1 a SET A.FIELD1=B.FIELD1 FROM 
    (SELECT * FROM TABLE2 WHERE ....) B 
    WHERE A.ID=B.ID AND A.FIELD1<100
      

  16.   

    rushing(勇敢的心)
    这个问题好像很有年头了,现在还没解决吗?
      

  17.   

    这样输出报表就好对齐了。
    如FlexGrid
      

  18.   

    有没有搞错
    select to_char(id,'99999990.00') id1 ...
    这么写他想不对齐都难啊
      

  19.   

    'o 是这样啊,你添加一个field把原来那个字段的值赴过来,
    rs.fields.add dd
    do until rs.eof 
        rs.fields("dd")= trim(rs.fields("aa"))
        rs.movenext 
    loop
    '看看可不可以
      

  20.   

    999999990.00意思是在SQL语句中把数字转换成有严格格式的字符型,这里的格式就是转成十位,长度不够补空格,一定有两位小数,没有也写零。
      

  21.   

    用sql语句一次把字符型的数据赋值给另一个Recordset行不行?rst1 ------> rst2
    (Integer---->String)
      

  22.   

    rushing(勇敢的心)大哥,你可真是没完没了啊,不达目的不罢休吗??