借书模块 输入借书证号以后 借书记录无法显示 报错内容是 “run-time error'13' Type mismatch” 代码如下Private Sub ShowBooksList(Data As Recordset, List As MSFlexGrid)
Dim i%, iRow%, OutDate As Boolean, strT$
With List
.FixedRows = 0
.RemoveItem 1
'显示借书记录
While Not Data.EOF
strT = Data.AbsolutePosition
For i = 0 To Data.Fields.Count - 2
strT = strT & vbTab & Data.Fields(i)
Next strT = strT & vbTab & cmbRoom.List(Data.Fields(i)) <-就是这里出错了 不知道是什么错????
If IsDate(Data.Fields("还期")) Then
If CDate(Data.Fields("还期")) < Date Then
OutDate = True
iRow = iRow + 1
strT = "* " & strT '为超期的借书记录添加标记
Else
strT = " " & strT
End If
Else
strT = " " & strT
End If
.AddItem strT
Data.MoveNext
Wend
.FixedRows = 1 '固定字段标题
End With
If OutDate Then '显示借书超期提示
MsgBox "你共有" & iRow & "本书已经超期!", vbCritical, "图书借阅管理"
'禁用借书、续借按钮
cmdLend.Enabled = False
cmdReLend.Enabled = False
End If
End Sub
Dim i%, iRow%, OutDate As Boolean, strT$
With List
.FixedRows = 0
.RemoveItem 1
'显示借书记录
While Not Data.EOF
strT = Data.AbsolutePosition
For i = 0 To Data.Fields.Count - 2
strT = strT & vbTab & Data.Fields(i)
Next strT = strT & vbTab & cmbRoom.List(Data.Fields(i)) <-就是这里出错了 不知道是什么错????
If IsDate(Data.Fields("还期")) Then
If CDate(Data.Fields("还期")) < Date Then
OutDate = True
iRow = iRow + 1
strT = "* " & strT '为超期的借书记录添加标记
Else
strT = " " & strT
End If
Else
strT = " " & strT
End If
.AddItem strT
Data.MoveNext
Wend
.FixedRows = 1 '固定字段标题
End With
If OutDate Then '显示借书超期提示
MsgBox "你共有" & iRow & "本书已经超期!", vbCritical, "图书借阅管理"
'禁用借书、续借按钮
cmdLend.Enabled = False
cmdReLend.Enabled = False
End If
End Sub
解决方案 »
- VBA中如何使用System.Windows.Forms中的Sendkeys.Sendwait方法?
- 为什么采用Input获取的二进制文件比实际大小少一个字节?
- 想了解现在网上那些晒QQ软件的实现原理
- 如何在 |$|之間提取.....有很多|$|, 如何提取想要的....
- 怎样在VB中将图片上传到网络服务器?
- 如何将listview控件的内容存储/载入/删除/删除某行/到数据库
- 关于SetWindowsHookEx使用的几个问题,请高手帮帮我!
- 请教:如何删除database??
- 一个奇怪的vb文件问题
- 好久了都没回应,急死我了。为什么高手不帮一下呢(关于VB窗口标题栏)
- ado 删除记录后显示问题
- PictureBox怎樣模擬TextBox控件可以直接輸入信息?
cmbRoom.List(Data.Fields(i)) 这里面需要一个integer的数值,如果你的数据大于那个值就出错
应该-1才对!
strT = Data.AbsolutePosition
For i = 0 To Data.Fields.Count - 2
strT = strT & vbTab & Data.Fields(i)
Next strT = strT & vbTab & cmbRoom.List(Data.Fields(i))
錯誤最有可能在這裡,可以設個斷點看看
strT = strT & vbTab & Data.Fields(i)
Next
应该为next i
strT = strT & vbTab & Data.Fields(i)
strT = strT & vbTab & cmbRoom.List(Data.Fields(i)) <-就是这里出错了 不知道是什么错????
Next