Option Explicit
Public Cnn As New ADODB.Connection      'ADO连接对象,用于连接本地歌曲库
Public Rs As New ADODB.Recordset        'ADO记录集Private Sub Main()                      '主调函数
Dim i As Integer
If DRV_open = 1 Then
    DRV_close
Else
    DRV_close
    RunEnd
End If
i = 1
KlokJs = False
KlokPlay = False
KlokZsdbFT = False
Cnn.Open "NEWKLOK"
Rs.Open "DBA_PIC", Cnn, adOpenDynamic, adLockBatchOptimistic
Do While Not Rs.EOF
    BackPic(i) = Rs.Fields("PICNAME").Value
    Rs.MoveNext
    i = i + 1
Loop
Rs.Close
Cnn.Execute "delete * FROM DBA_USER"
klokSplash.Show
'NetLink              暂时取消网络检测
GetIni                         '获取配置文件中包房名
'======================日期加密
Rs.Open "DBA_PASSWORD", Cnn, adOpenDynamic, adLockBatchOptimistic
If Rs.EOF Then
    KlokMsgSH "歌曲库不完整或损坏", "致命错误", 0
    RunEnd
End If
If Not (IsNull(Rs.Fields("TimeF").Value) Or IsNull(Rs.Fields("TimeT").Value)) Then
    If Date < Rs.Fields("timef").Value Then
      KlokMsgSH "System Errors:-5173,请与程序供应商联系! ", "System Errors:", 0
      RunEnd
    End If
    If Date >= Rs.Fields("timet").Value Then
         KlokMsgSH "System Errors:-5174,请与程序供应商联系! ", "System Errors:", 0
         RunEnd
    End If
End If
If Not IsNull(Rs.Fields("bfcount").Value) Then
    BFCount = Rs.Fields("bfcount").Value
Else
    BFCount = "-1"
End If
Rs.Close
Ktv_Pass                    '包厢加密
'==============================
KlokExeFT = False
KlokOtherFT = False
i = 1
Rs.Open "DBA_EXE", Cnn, adOpenStatic, adLockReadOnly
If Rs.RecordCount <> 0 Then
    ReDim KlokExe(Rs.RecordCount)
    KlokExeFT = True
    KlokExeCount = Rs.RecordCount
End If
Do While Not Rs.EOF
   KlokExe(i).DrunPath = Rs.Fields("runpath").Value
   KlokExe(i).DrunShowName = Rs.Fields("ObjectName").Value
   i = i + 1
   Rs.MoveNext
Loop
Rs.Close
i = 1
Rs.Open "DBA_OTHER", Cnn, adOpenKeyset, adLockReadOnly
If Rs.RecordCount <> 0 Then
    ReDim KlokOthe(Rs.RecordCount)
    KlokOtherFT = True
    KlokOtherCount = Rs.RecordCount
End If
Do While Not Rs.EOF
    KlokOthe(i).DotherName = Rs.Fields("audioname").Value
    KlokOthe(i).DotherPath = Rs.Fields("audiopath").Value
    i = i + 1
    Rs.MoveNext
Loop
Rs.Close
FindZs = 0
AudioSd = 0
XhFlag = False
AudioCount = 0
'PicCount = 0
KtvStatus_Flag = False         '默认标志为未开卡
If Not NetError Then
    GetKtvinfo                     '获取包房基本情况
    If Not KlokJs Then
        GetKTVStatus               '获取包房当前状态
        InitProc
    End If
End If
Rs.Open "DBA_SONG", Cnn, adOpenDynamic, adLockBatchOptimistic
Do While Not Rs.EOF
    If Rs.Fields("dq").Value = "1" Then
        Rs.Fields("dq").Value = "0"
        Rs.UpdateBatch
    End If
    AudioCount = AudioCount + 1
    Rs.MoveNext
Loop
Rs.Close
PlayPause = 0
klokmain.Show 1End Sub这是一个卡啦OK点播系统在打开数据库出错了.
Cnn.Open "NEWKLOK" 这语句出错了.
请高手指点分不够再加!!

解决方案 »

  1.   

    NEWKLOK在那里啊?
    还有你最好不要这么写,你完全可以把连接数据库的部分放到一个模块中。这样写不是很好
      

  2.   

    NETKLOK字符串在那里?
    还有这样写不是很好。你完全可以把连接数据库的代码放在一个模块中,这样读起来会方便很多。
      

  3.   

    我用ADO连接:
    工程--->引用--->Microsoft ActiveX Data Object 2.x(版本号)Option ExplicitDim WithEvents adoRS As Recordset
    Dim db As Connection
    '提数据事件
        Set db = New Connection
        db.CursorLocation = adUseClient
        db.Open"Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & App.Path & "\db1.mdb;Jet OLEDB:Database Password=1234;"
    '                           ##########################################
    '打开密码是1234的Access2000数据库db1.mdb
    '不需要密码,就把Jet OLEDB:Database Password=1234;这段去掉    Set adoRS = New Recordset
        
        adoRS.Open "SELECT * FROM 表", db, adOpenStatic, adLockOptimistic
        Set DataGrid1.DataSource = adoRS
        DataGrid1.Refresh
    '添加事件
        adoRS.AddNew
        adoRS![字段a] = text1.Text
        adoRS![字段b] = text2.Text
        adoRS.UpdateBatch adAffectAll'删除
        adoRS.Delete
        adoRS.Requery
        Set DataGrid1.DataSource = adoRS
        DataGrid1.Refresh
      

  4.   

    这里修改一下,会易懂些:
    Do While Not Rs.EOF
        BackPic(i) = Rs.Fields("PICNAME").Value
        Rs.MoveNext
        i = i + 1
    Loop改成:
    Do While Not Rs.EOF
        BackPic(i) = Rs![PICNAME]
    '             ~~~~~~~~~~~~~~~~~~~~
        Rs.MoveNext
        i = i + 1
    Loop
      

  5.   

                                       敬      告
        想回答楼主此人的问题的朋友,先到这儿看清楚楼主是什么样的素质的人,看清楚了再来回答问题!
    http://expert.csdn.net/Expert/topic/1972/1972757.xml?temp=.3935053
      

  6.   

    你们难道不会sql2000 ,就会access2000!!!!!
      

  7.   

    想回答楼主此人的问题的朋友,先到这儿看清楚楼主是什么样的素质的人,看清楚了再来回答问题!
    http://expert.csdn.net/Expert/topic/1972/1972757.xml?temp=.3935053===================================================================
    看此贴才明白!
    原以为是个蹩脚的激将法,没有在意什么,但今天看到给分情况,实在不舒服。
    偶回答问题虽不一定正确,但也付出一番苦心的,错了的话,你说说,偶能帮忙,可以再帮忙。
    可实际呢,偶也与某些浑水摸鱼之辈同等待遇,只得1分?!
    实是再无积极性可言。
    你这种态度很另偶失望呀。