设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2794|回复: 5
打印 上一主题 下一主题

[ADO/DAO] [求助]ADO连接access2003数据库的有关问题

[复制链接]
跳转到指定楼层
1#
发表于 2007-1-1 01:55:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是从《Access数据库系统开发从基础到实践》一书中的示例--考试管理系统中的一段代码:

Private Sub 自动选择试题_Click()
    Dim intRnd As Integer
    Dim i, j As Long
    Dim IsPrint As Boolean
   
    Set cn = CurrentProject.Connection
    DoCmd.SetWarnings False
    '更新试题表中是否打印字段全部为否
    DoCmd.RunSQL "UPDATE 试题 SET 试题.是否打印 = " & False & ""
   
    sql1 = "select * from 试题选择"
    rs1.Open sql1, cn, 3, 2, 1
    rs1.MoveFirst
    For i = 1 To rs1.RecordCount
       sql2 = "select * from 试题 where 试题类型1=" & rs1.Fields("试题类型1") & " and 试题类型2=" & rs1.Fields("试题类型2") & ""
        rs2.Open sql2, cn, 3, 2, 1
        IntArray = rs2.RecordCount
        '初始化随机种子
        Randomize Timer
        '如果此类型有题库
        If rs2.RecordCount > 0 Then
            '则取指定的题数
            For j = 1 To rs1.Fields("题数")
                rs2.MoveFirst
                intRnd = Int((IntArray - 1) * Rnd(j) + 1)
                '随机移动记录
                rs2.Move intRnd
                '取是否打印
                Do While True
                    If Not rs2.EOF Then
                        IsPrint = rs2.Fields("是否打印")
                    Else
                        IsPrint = True
                    End If
                    If IsPrint = False Then
                        rs2.Fields("是否打印") = True
                        rs2.Update
                        Exit Do
                    Else
                        If rs2.EOF Then
                            rs2.MoveFirst
                        Else
                            rs2.MoveNext
                        End If
                    End If
                Loop
            Next
            rs2.Close
        End If
        rs1.MoveNext
    Next
    '处理完毕,清除变量,释放空间
    rs1.Close
    Set cn = Nothing
    DoCmd.SetWarnings True
    MsgBox "选择完毕!", vbInformation, Me.Caption
End Sub


为什么运行时总弹出对话框提示:

运行时错误‘13’

类型不匹配

无法正常运行下去。主要问题出红色部分代码。

有谁可以解决这一问题--

[此贴子已经被作者于2007-1-1 12:14:39编辑过]

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2007-1-1 04:52:00 | 只看该作者
& ""
没什么用
3#
发表于 2007-1-3 00:20:00 | 只看该作者
sql2 = "select * from 试题 where 试题类型1=" & rs1.Fields("试题类型1") & " and 试题类型2=" & rs1.Fields("试题类型2") & ""


试题类型1和试题类型2是什么类型的字段?如果是文本,请使用以下代码.

sql2 = "select * from 试题 where 试题类型1='" & rs1.Fields("试题类型1") & "' and 试题类型2='" & rs1.Fields("试题类型2") & "'"
4#
 楼主| 发表于 2007-1-8 01:15:00 | 只看该作者
试题类型1和试题类型2是数字类型的字段。

运行时总弹出对话框提示:



运行时错误‘13’



类型不匹配



无法正常运行下去。

如果单击调试,则VBA代码编辑界面,指针指向如下代码

  Set cn = CurrentProject.Connection 

有谁知道是什么原因?
5#
发表于 2007-1-8 01:46:00 | 只看该作者
没有声明cn嘛
6#
 楼主| 发表于 2007-1-8 21:39:00 | 只看该作者
cn已经在该窗体模块中声明了

Option Compare Database
Option Explicit
Dim cn As Connection
Dim rs1 As New ADODB.Recordset
Dim rs2 As New ADODB.Recordset
Dim IntArray As Integer
Dim sql1 As String
Dim sql2 As String
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-25 21:33 , Processed in 0.103491 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表