我使用的是VB内带的空间来打印物资清单的,第一次运行打印窗体里的打印按钮可以正常使用,但是,当将此窗体关闭再打开的时候,点击打印按钮就出现了如题的错误。
我查了下,好像是因为环境关闭了,再打开不是同一个,具体的也没说清楚,我也没弄懂。。
欢迎了解的不吝赐教!!(如果变动不是很大最好,小弟对报表还不是很熟悉,希望大侠详细讲解,我也只有以高分回报了)
以下是我的代码:Private Sub butprint_Click() '打印物资清单 DataEnvironment1.Connection1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\data\laobao.mdb;Persist Security Info=False" DataEnvironment1.Connection1.Open
If DataEnvironment1.rsCommand1.State <> adStateClosed Then
DataEnvironment1.rsCommand1.Close
End If
DataEnvironment1.rsCommand1.Open "select * from admin"
Set presult.DataSource = DataEnvironment1 'presult是我用VB里DATAREPORT做的报表格式
presult.DataMember = "Command1"'以下为报表里我设置的LABEL控件,具体的值是我传递过去的字符串 presult.Sections(3).Controls("content").Width = 6000
presult.Sections(3).Controls("content").Height = 5500
presult.Sections(3).Controls("ppname").Caption = pname
presult.Sections(3).Controls("ppid").Caption = pid
presult.Sections(3).Controls("ppdanwei").Caption = pdanwei
presult.Sections(3).Controls("ppwtype").Caption = pwtype
presult.Sections(3).Controls("pptime").Caption = ptime
presult.Sections(3).Controls("content").Caption = printresult
presult.Show
End Sub
我查了下,好像是因为环境关闭了,再打开不是同一个,具体的也没说清楚,我也没弄懂。。
欢迎了解的不吝赐教!!(如果变动不是很大最好,小弟对报表还不是很熟悉,希望大侠详细讲解,我也只有以高分回报了)
以下是我的代码:Private Sub butprint_Click() '打印物资清单 DataEnvironment1.Connection1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\data\laobao.mdb;Persist Security Info=False" DataEnvironment1.Connection1.Open
If DataEnvironment1.rsCommand1.State <> adStateClosed Then
DataEnvironment1.rsCommand1.Close
End If
DataEnvironment1.rsCommand1.Open "select * from admin"
Set presult.DataSource = DataEnvironment1 'presult是我用VB里DATAREPORT做的报表格式
presult.DataMember = "Command1"'以下为报表里我设置的LABEL控件,具体的值是我传递过去的字符串 presult.Sections(3).Controls("content").Width = 6000
presult.Sections(3).Controls("content").Height = 5500
presult.Sections(3).Controls("ppname").Caption = pname
presult.Sections(3).Controls("ppid").Caption = pid
presult.Sections(3).Controls("ppdanwei").Caption = pdanwei
presult.Sections(3).Controls("ppwtype").Caption = pwtype
presult.Sections(3).Controls("pptime").Caption = ptime
presult.Sections(3).Controls("content").Caption = printresult
presult.Show
End Sub
DataEnvironment1.Connection1.close
估计是连接没有关闭,再次打开连接时报错的问题
Dim datacmd As New Command
Dim strsql As String
Dim controlx As Object
Dim fieldcount As Integer
Dim dfsco As String
Dim temans As Integer
Dim k As Integer
fieldcount = 0
k = 1
Set datacmd = Nothing
Set datacmd = New CommandWith datacmd
.ActiveConnection = DataConn
.CommandType = adCmdText
.CommandText = " select * from otistem"
.Execute
End With
With DataRec
.ActiveConnection = DataConn
.CursorLocation = adUseClient
.Open datacmd
End With
With Otis.Sections.Item("section2").Controls.Item("label1").Caption = Trim(" " & DataRec.Fields("出货日期"))
.Sections.Item("section2").Controls.Item("label47").Caption = Trim(txtshc(2).Text)
.Sections.Item("section2").Controls.Item("label3").Caption = Trim(DataRec.Fields("分布") & " ")
.Sections.Item("section2").Controls.Item("label4").Caption = Trim(DataRec.Fields("库位") & " ")
.Sections.Item("section2").Controls.Item("label5").Caption = "324555" '供应商代码
.Sections.Item("section3").Controls.Item("label51").Caption = CStr(Date + Time) '
.Sections.Item("section3").Controls.Item("label6").Caption = "白联-DCC(WHITE-DCC) 粉联-收货区(BLUE-RECEIVER) 兰联-仓库(BLUE-WAREHOUSE) 绿联-质量部(GREEN-QUALITY) 黄联-供应商(YELLOW-SUPPLIER)"
.Sections.Item("section3").Controls.Item("label7").Caption = "使用无碳、A4 纸张打印."
Set .DataSource = DataRec
.DataMember = ""
With .Sections("section1") For Each controlx In .Controls
If TypeOf controlx Is RptTextBox Then
controlx.DataMember = ""
controlx.DataField = DataRec.Fields(fieldcount).Name
fieldcount = fieldcount + 1
End If
Next
End With
.Refresh
.Show
end with
End Function
DataEnvironment1.Connection1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\data\laobao.mdb;Persist Security Info=False"
DataEnvironment1.Connection1.Open
在form_unload里关闭:
DataEnvironment1.Connection1.Close
。。
DataEnvironment1.Connection1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\data\laobao.mdb;Persist Security Info=False"
DataEnvironment1.Connection1.Open
End SubPrivate Sub Form_Unload(Cancel As Integer)' DataEnvironment1.rsCommand1.Close
DataEnvironment1.Connection1.Close
End SubPrivate Sub butprint_Click() '打印物资清单
If DataEnvironment1.rsCommand1.State <> adStateClosed Then
DataEnvironment1.rsCommand1.Close
End If DataEnvironment1.rsCommand1.Open "select * from admin"
Set presult.DataSource = DataEnvironment1
presult.DataMember = "Command1" presult.Sections(3).Controls("content").Width = 6000
presult.Sections(3).Controls("content").Height = 5500 presult.Sections(3).Controls("ppname").Caption = pname
presult.Sections(3).Controls("ppid").Caption = pid
presult.Sections(3).Controls("ppdanwei").Caption = pdanwei
presult.Sections(3).Controls("ppwtype").Caption = pwtype
presult.Sections(3).Controls("pptime").Caption = ptime
presult.Sections(3).Controls("content").Caption = printresult
presult.Show
End Sub
DataEnvironment1.Connection1.Close
End Sub
把以上过程删除,加以下过程,看看:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
' DataEnvironment1.rsCommand1.Close
DataEnvironment1.Connection1.Close End Sub
DataEnvironment1.Connection1.Open
并把原来的UNLOAD里关闭注释掉就OK了。。还是谢谢大家