我建立了一个SuperMarket的数据库,里面已经那好需要的和输入好举例的数据了,VB上窗口都已经编辑好并输入代码,VB里的部件都已经加载好了。可是总会出现一点点小问题,经探索发现是连接不上数据库的问题为主,数据库服务器也启动了(服务器:PC2013030610BAJ;服务:SQL Server)详情请看代码:
Public Sub Main() '程序入口
    App.Title = "超市POS系统"
    ReadInf
    frmLogin.Show
End SubPublic Sub ReadInf() '获取POS机配信息
    Dim strTmp As String, str1() As String
    On Error GoTo err1  '错误处理
    Open App.Path & "\DATA\base.inf" For Input As #1    '打开文件
    If Not EOF(1) Then  '若文件未结束
        Line Input #1, strTmp   '读入一行内容
    End If
    Close #1    '关闭打开的文件
    strTmp = Trim(strTmp)   '去掉尾部空格
    If strTmp <> "" Then    '若字符串不为空
        str1 = Split(strTmp, ",")   '将字符串分解为数组
        POSID = str1(0) '将POS机序号保存到全局变量
        strSaleID = POSID & Format(str1(1), "0000000") '由POS机号作第1位生成销售单编号
    End If
    Exit Sub
err1:
    POSID = 1   '设置为1号POS机
    strSaleID = POSID & Format(1, "0000000") ' '由POS机号作第1位
End Sub
Private Sub Connect() '连接数据库
     If IsConnect = True Then  '如果连接标记为真,则返回。否则会出错
        Exit Sub
    End If
   
    On Error GoTo DbOpenErr
    Set cnn = New ADODB.Connection '关键New用于创建新对象cnn
       With cnn
        .Provider = "sqloledb.1"
        .ConnectionString = "data source=.;initial catalog=SuperMarket;Persist Security Info=False;uid=sa;password=;"
        '"driver={sql server};server=(local);Persist Security Info=False;User ID=sa;password=;"
        '"driver={sql server};server=(local);database=SuperMarket;integrated security=True;uid=sa;password="
        .ConnectionTimeout = 10
        .Open[/b]     操作说明:在这里打开的时候会有点延迟,可能是因为要打开数据库的原因吧,所以有点慢,接着就是往下执行的,之后就提示下面MsgBox语句了
    End With
    IsConnect = True  '设置连接标记,表示已经连接到数据库
    Exit Sub
    
DbOpenErr:
    If err = -2147467259 Then
        Set cnn = Nothing
        MsgBox "连接MS SQL Server数据库失败!" & vbCrLf & vbCrLf & "请检查配置是否完好,数据库SuperMarket是否存在?", vbOKOnly + vbInformation, "超市POS前台管理系统"
        End
    End If
    
End Sub
   请问我这代码有没有错误呢,此前试过这里没错误,反而是后面的下面语句有错误。我的代码应该没错误啊!
Public Function QueryExt(ByVal TmpSQLstmt As String) As ADODB.Recordset '执行数据库查询语句
    Dim rst As New ADODB.Recordset
    DB_Connect    '连接到数据库
    
    Set rst.ActiveConnection = cnn    '设置rst的ActiveConnection属性,指定与其关联的数据库连接
    rst.CursorType = adOpenKeyset
    rst.LockType = adLockOptimistic   '设置锁定类型
    rst.Open TmpSQLstmt    '打开记录集
    Set QueryExt = rst    '返回记录集
End FunctionSQLvb连接代码数据库