Private Sub cmbid_Click() Dim cmd As New ADODB.Command Dim rs1 As New ADODB.RecordsetText1.Text = "" '这个控件中存放的是打印时间 If InStr(cmbid, "//") > 0 Then ssql = "select id,printdate from title where id = '" + Left(cmbid, InStr(cmbid, "//") - 1) + "//000'" Else If Len(cmbid) = 11 Then ssql = "select id,printdate from title where id = '" + Left$(cmbid, 8) + "001'" Else ssql = "select id,printdate from title where id = '" + Left$(cmbid, 8) + "001" + Right$(cmbid, 1) + "'" End If End If cmd.ActiveConnection = cn cmd.CommandText = ssql rs1.Open cmd, , adOpenKeyset, adLockReadOnly, adCmdText If Not (rs1.BOF And rs1.EOF) Then If IsNull(rs1("printdate")) Then Text1.Text = Format(Date, "mm.dd") Else Text1.Text = rs1("printdate") '在这句话出现溢出错误 End If End If rs1.CloseEnd Sub 该事件被执行多次,只有执行打印以后,再执行几次该事件才会在标注处出现溢出错误。 打印时重新定义的几个数据集变量,读取数据库中的信息,然后用PRINTER对象执行打印。
记录打开时先确认是否为关闭状态: if rs.state=adstateopen then rs.close
记录集肯定是关闭的,不然重新打开的时候就会出错了。
安装了VBSP5,可是问题依旧。
Dim cmd As New ADODB.Command
Dim rs1 As New ADODB.RecordsetText1.Text = "" '这个控件中存放的是打印时间
If InStr(cmbid, "//") > 0 Then
ssql = "select id,printdate from title where id = '" + Left(cmbid, InStr(cmbid, "//") - 1) + "//000'"
Else
If Len(cmbid) = 11 Then
ssql = "select id,printdate from title where id = '" + Left$(cmbid, 8) + "001'"
Else
ssql = "select id,printdate from title where id = '" + Left$(cmbid, 8) + "001" + Right$(cmbid, 1) + "'"
End If
End If
cmd.ActiveConnection = cn
cmd.CommandText = ssql
rs1.Open cmd, , adOpenKeyset, adLockReadOnly, adCmdText
If Not (rs1.BOF And rs1.EOF) Then
If IsNull(rs1("printdate")) Then
Text1.Text = Format(Date, "mm.dd")
Else
Text1.Text = rs1("printdate") '在这句话出现溢出错误
End If
End If
rs1.CloseEnd Sub
该事件被执行多次,只有执行打印以后,再执行几次该事件才会在标注处出现溢出错误。
打印时重新定义的几个数据集变量,读取数据库中的信息,然后用PRINTER对象执行打印。
換成
rs1.Open cmd, , adOpenstatic, adLockReadOnly, adCmdText
試試
rs1.Open ssql,cn, adOpenKeyset, adLockReadOnly, adCmdText
试一下