另外,我如果想从AAA.txt这样一个文件中读入数据放在表中,VB或T-sql提供这样的方法么?AAA.txt文件内容是这样的:
010128459000 0130430411029190561011029559 30150 135254 30150 
010128459000 2250250231079150031031079559  3000  7200  3000 
010129146900 0211611651029100231051029209 10000  48650 10000 
010129146900 0230430911019190141011019209  5000  25672  5000 
010129146900 0911611621109100021021109209 10000  95700 10000 
010129146900 2211111132019190171032019209    15  2209    15 
010129146900 2211111132019191701032019209  4000  16880  4000  

解决方案 »

  1.   

    这的确是一个小问题,它是DataReport的最基本的功能了,实现的方法很多,最简单=》直接在数据环境中建一个Command对象,将其设置为欲连接的SQL表。然后将整个Command对象(或是其中的某个字段)拖动到DataReport的明细字段,再对DataReport的数据源的属性进行相应设置就可以了。几乎所有讲解VB的书中都有这方面的内容。
      

  2.   

    是啊,我知道这么做,可是这只能显示当前的表内容。在软件执行期,当我的数据库中的表内容变了的时候,报表中的内容是不能更新的,显示的还是旧表。这是数据环境的一大弱点。所以我认为只能用ado来实现,可是我不太会用section命令将数据报表与表相连,有谁能告诉我应该怎么做么?
      

  3.   

    zhyzhr说的完全正确。报表中的内容是随时更新的。用不着senction命令。直接拖动字段就行了。
      

  4.   

    DataReport的内容不随数据库的内容变化
    所属类别: Visual Basic-打印与报表编号:QA001874
    建立日期: 1999年10月19日 最后修改日期:2001年3月5日  孙伟: 
        vb6.0 
        Pwin98 
        在使用DataReport时,我通过DataEnvironment连接了一个临时数据库,该数据库中的数据根据查询条件的不同而变化,但是每次执行程序,当我改变查询条件时,临时数据库内容变化了,而报表的内容不变,要退出程序才行。经反复测试,发现每次报表的内容是程序启动前的临时数据库内容,请问专家这个问题应该如何解决?谢谢。 回答:     Requery方法! 
        也可以直接使用ADODB.Recordset!不使用DataEnvironment!例: 
        ... 
         public adoRecordsetX as ADODB.Recordset 
        ... 
         
         Private Sub DataReport_Initialize() 
         adoRecordsetX.Requery 
         Set DataReport1.DataSource = adoRecordsetX '设置 DataReport 的数据源 
         ... 
         '绑定某字段 
         Me.Sections.Item("Section1").Controls.Item("text1").DataField=adoRecordsetX.Fields.Item(0).Name 
         ... 
         End Sub 
        wuxiaoqiang的意见: 
        在你们有关上述问题的回答,我想再增加一种更简单的解决办法。 
         1.在datareport 报表中设置datamember和datasource为空。 
         2.将以前绑定的RptTextBox的datamember设为空,保留原来的datafield. 
         3.在打印操作中增加以下代码: 
         Dim db As Connection 
         Set db = New Connection 
         db.CursorLocation = adUseClient 
         db.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=" + App.path + "\finance.mdb" + ";" 
         
         Set tb = New Recordset 
         tb.Open "select * from dailyfeeprint", db, adOpenStatic, adLockOptimistic 
         With tb 
         
         .AddNew 
         ![工号] = Combo1(0).Text 
         ![姓名] = txtFields(0).Text 
         ![交费日期] = txtFields(1).Text 
         ......... 
         .Update 
         End With 
         
         Set data1.Recordset = tb 
         
         Set datareport1.DataSource = data1 
         datareport1.Show 
         datareport1.PrintReport 
        其实这个问题也搞得我很头疼,希望能让其他人不再头疼。 
        herycom的意见: 
        直接Requery 一下就可以了。 
        Private Sub DataReport_Initialize() 
         DataEnvironment1.rsCommand1.Requery 
        End Sub 
         
        风魔的意见: 
        这几天我也是为这个问题而烦恼!直到今天早上,我无意中想到把数据环境也跟报表一样Unload 一下,没想到真的可行! 
         DataReport3.Caption = Ipt & "用户费用" 
         DataReport3.Title = Ipt & "用户费用" 
         DataReport3.Show vbModal, Me 
         Unload DataReport3 
         Unload DataEnvironment1 
         
        spencer yang的意见: 
        具体范例,请到纪文和网站 VB入门网 
        http://www.vbguide.com.tw/webback.asp 
        看看「个个击破」 单元中的 
        --------------------------------------- 
        277 如何更新 DataReport 里的资料? 
        --------------------------------------- 
        数字女孩的意见: 
        以上方法还需补充一下 
         1 对DataEnvironment的datamember的属性设置为空。 
         2 对datareport报表中的rpttext控件的datasouce和recordset重新进行绑定(需要在报表初始化事件中用代码实现) 
         
        相关问题: 
        QA002102 “当数据集变化时,更新VB 6.0的DataGrid控件” 
        QA004178 “当使用DataEnvironment时,显示更新的列表框” 此问题由于溪玥回答。 
      

  5.   

    笑笑,谢谢你啊,我也解决这个问题了,用ado.refresh就可以了。environmnet就是对更新有问题,不好用。
      

  6.   

    对,还是ado好,我也是最近看书才知道的.