为什么会提示溢出呢?解决方法
为什么会提示溢出呢?
Dim Asc() As Integer
Dim db As Database
Dim Rec As Integer
Private Rs As New ADODB.Recordset
Private Conn As New ADODB.Connection
Private Sub Form_Load()
Dim strConn As String
Dim i As Integer
' 连接数据库的字符串
' 连接带密码的数据库,直接在连接符后面加上Jet OLEDB:DataBase Password= '您的密码 '
' 连接Access97数据库需要使用Jet.OLEDB.3.5,Access2K和以上数据库使用Jet.OLEDB.4.0
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "\data\fw_data.mdb;Persist Security Info=False "
' 使用客户端数据游标
Conn.CursorLocation = adUseClient
' 打开Access的连接
Conn.Open strConn
' 如果RecordSet的状态不是关闭状态,则关闭Recordset
If Rs.State <> adStateClosed Then Rs.Close
' Recordser打开表
Rs.Open "Select * from fw_users ", Conn, adOpenKeyset, adLockOptimistic
Rs.MoveLast
Rec = Rs.RecordCount
ReDim Asc(Rec - 1)
Rs.MoveFirst
For i = 1 To Rec
cmb_name.AddItem Rs.Fields( "fw_name ")
' Asc(i - 1) = Val(Rs.Fields( "fw_pwd ")) 为什么会溢出呢?
Rs.MoveNext
If Rs.EOF Then Exit For
Next
'cmb_name.Text = " "
txt_pass.Text = " "
End Sub
数据库:fw_data.mdb
表为:fw_users
有字段:FW_NAME和FW_PWD,且皆为文本类型,长度15
有两条数据
为什么一运行就提示溢出呢?
调试返回到这条:
Asc(i - 1) = Val(Rs.Fields( "fw_pwd "))
请问是什么原因啊? 怎么解决呢?
------解决方案--------------------
Exception type ErrorNumber Condition
OverflowException 6 InputStr is too large.
InvalidCastException 13 Number is badly formed.
ArgumentException 438 Object type expression not convertible to String.
Print Err.Number
出来看就知道了嘛
------解决方案--------------------
Dim Asc() As long试试看
Dim Asc() As Integer
Dim db As Database
Dim Rec As Integer
Private Rs As New ADODB.Recordset
Private Conn As New ADODB.Connection
Private Sub Form_Load()
Dim strConn As String
Dim i As Integer
' 连接数据库的字符串
' 连接带密码的数据库,直接在连接符后面加上Jet OLEDB:DataBase Password= '您的密码 '
' 连接Access97数据库需要使用Jet.OLEDB.3.5,Access2K和以上数据库使用Jet.OLEDB.4.0
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "\data\fw_data.mdb;Persist Security Info=False "
' 使用客户端数据游标
Conn.CursorLocation = adUseClient
' 打开Access的连接
Conn.Open strConn
' 如果RecordSet的状态不是关闭状态,则关闭Recordset
If Rs.State <> adStateClosed Then Rs.Close
' Recordser打开表
Rs.Open "Select * from fw_users ", Conn, adOpenKeyset, adLockOptimistic
Rs.MoveLast
Rec = Rs.RecordCount
ReDim Asc(Rec - 1)
Rs.MoveFirst
For i = 1 To Rec
cmb_name.AddItem Rs.Fields( "fw_name ")
' Asc(i - 1) = Val(Rs.Fields( "fw_pwd ")) 为什么会溢出呢?
Rs.MoveNext
If Rs.EOF Then Exit For
Next
'cmb_name.Text = " "
txt_pass.Text = " "
End Sub
数据库:fw_data.mdb
表为:fw_users
有字段:FW_NAME和FW_PWD,且皆为文本类型,长度15
有两条数据
为什么一运行就提示溢出呢?
调试返回到这条:
Asc(i - 1) = Val(Rs.Fields( "fw_pwd "))
请问是什么原因啊? 怎么解决呢?
------解决方案--------------------
Exception type ErrorNumber Condition
OverflowException 6 InputStr is too large.
InvalidCastException 13 Number is badly formed.
ArgumentException 438 Object type expression not convertible to String.
Print Err.Number
出来看就知道了嘛
------解决方案--------------------
Dim Asc() As long试试看