没用数据环境 如何用datareport做报表?

qflash 2003-10-16 07:53:01
我用了如下的数据库连接方式:
Option Explicit
Public cnn As New ADODB.Connection
Public rst As New ADODB.Recordset

Private Sub Form_Load()
Dim i As Long
cnn.Open "Provider=msdatashape;data provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\pnew.mdb"
Call rst.Open("select * from biao1", cnn, adOpenDynamic, 2)

End Sub

请问如何设置datareport的datasourse ,datamember 属性???

...全文
70 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
SuperZhou 2003-10-17
  • 打赏
  • 举报
回复
这是下标越界可能产生的原因:

只能在定义的范围内访问数组元素和集合成员。此错误有以下的原因和解决方法:

引用了不存在的数组元素.
下标比可能下标范围大或小,或是在应用程序中这一边的数组没有指定范围。检查数组的声明以确认其上界和下界。若使用的是重新指定范围的数组,应使用 UBound 和 LBound 函数来决定数组访问。如果索引指定为变量,应检查变量名的拼写。

声明数组时没有指定元素的数目。例如,下列的代码就会导致此错误:
Dim MyArray() As Integer
MyArray(8) = 234 ' 导致错误 9。

Visual Basic 并不会将没有指定范围的数组自动设为 0 – 10。相反必须使用 Dim 或 ReDim 来指定数组中元素的数目。

引用了不存在的集合成员。
试着使用 For Each...Next 结构代替指定元素下标。

使用速写形式的下标,结果指定了错误的元素。
例如,当在集合上使用 ! 运算子时,! 自动指定了一个键。例如 object!keyname.value 和 object.item(keyname).value 是一样的。在此例中,集合中如果 keyname 表示一个错误键,错误就会产生。若要改进此错误,在集合对象中使用正确的键名称或索引。



在不用数据环境的情况下,只要设置报表的DataSource属性为查询的记录集就可以了。


qflash 2003-10-16
  • 打赏
  • 举报
回复
我的代码如下:pnew.mdb里有10条记录
Option Explicit
Public cnn As New ADODB.Connection
Public rst As New ADODB.Recordset

Private Sub Form_Load()
cnn.Open "provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\pnew.mdb"
Call rst.Open("select * from biao1", cnn, adOpenDynamic, 2)
Set DataReport1.DataSource = rst
If Not rst.EOF Then
DataReport1.Sections(1).Controls("text1").DataField ="Time"
End if
DataReport1.Show 1

End Sub

可是执行的时候提示DataReport1.Sections(1).Controls("text1").DataField ="Time"
实时错误“9”: 下标越界。
该怎么解决呢?
qflash 2003-10-16
  • 打赏
  • 举报
回复
我刚才看了一下前面的帖子:
On Error Resume Next
Set adoRecordsetX = New ADODB.Recordset
adoRecordsetX.Fields.Append "CH", adBSTR
...........
adoRecordsetX.Open
STRSQL = "select * from ZDYK_TAB where BH= XXX"
set gRS = gDB.OpenResultset(STRSQL)
If Not gRS.EOF Then
adoRecordsetX.Fields.Item(0).Value = ISNULL2SPACE(gRS!CH)
.............
End If
gRS.Close
adoRecordsetX.Update
Set DataReport.DataSource = adoRecordsetX
DataReport.Show 1
adoRecordsetX.Close
qflash 2003-10-16
  • 打赏
  • 举报
回复
有没有其他更简单的报表控件?我今天才开始学报表(老师要求)
以前都没弄过。

809

社区成员

发帖
与我相关
我的任务
社区描述
VB 多媒体
社区管理员
  • 多媒体
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧