运行出错;未发现数据源名称 怎么解决
显示的是Adodc1.Refresh错
Dim txtRS As String
Private Sub Form_Load()
  Adodc1.ConnectionString = PublicStr  
  Adodc1.RecordSource = "select * from tbS_power"  
  Adodc1.Refresh             
End SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, y As Single)
    Label3.ForeColor = &H80000012
    Label4.ForeColor = &H80000012
End SubPrivate Sub Label1_Click()
  Adodc1.RecordSource = "select * from tbS_power"
  Adodc1.Refresh
  On Error Resume Next
  txtRS = Adodc1.Recordset.Fields(0)
  If txtRS = "" Then 
     MsgBox "尊敬的用户,你还没有注册为本系统用户,请尽快注册为系统用户"
     frm_main.Show  
     frm_setOP.Show  
     frm_main.Enabled = False
     Unload Me
     Exit Sub
  End If
  Adodc1.RecordSource = "select * from tbS_power where sysuser='" + txtName.Text + "'and password='" + txtPassword.Text + "'"
  Adodc1.Refresh
 
   If Adodc1.Recordset.Fields(2).Value = 0 Or Adodc1.Recordset.Fields(3).Value = 0 Or Adodc1.Recordset.Fields(4).Value = 0 Or Adodc1.Recordset.Fields(5).Value = 0 Or Adodc1.Recordset.Fields(6).Value = 0 Then
   Else
      frm_main.Show  
      Unload Me
      Exit Sub
   End If
   
  '为用户分配权限
  If Adodc1.Recordset.RecordCount > 0 Then
     If Adodc1.Recordset.Fields(2).Value Then         
        frm_main.file1.Enabled = True
        frm_main.labFile(0).Enabled = True
     Else
        frm_main.file1.Enabled = False
        frm_main.labFile(0).Enabled = False
     End If
     If Adodc1.Recordset.Fields(3).Value Then         
        frm_main.file2.Enabled = True
        frm_main.labFile(1).Enabled = True
     Else
        frm_main.file2.Enabled = False
        frm_main.labFile(1).Enabled = False
     End If
     If Adodc1.Recordset.Fields(4).Value Then          
        frm_main.file3.Enabled = True
        frm_main.labFile(2).Enabled = True
     Else
        frm_main.file3.Enabled = False
        frm_main.labFile(2).Enabled = False
     End If
     If Adodc1.Recordset.Fields("system").Value Then      
        frm_main.file6.Enabled = True
        frm_main.labFile(3).Enabled = True
     Else
        frm_main.file6.Enabled = False
        frm_main.labFile(3).Enabled = False
     End If
     If Adodc1.Recordset.Fields("base").Value Then
        frm_main.file5.Enabled = True
     Else
        frm_main.file5.Enabled = False
     End If
     frm_main.Show  
     Unload Me
  Else
     MsgBox "您输入的信息不正确!"
     txtName.SetFocus   
     Exit Sub
  End If
End SubPrivate Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, y As Single)
  Label3.ForeColor = &HC00000
End SubPrivate Sub Label2_Click()
  Unload Me
End SubPrivate Sub Label2_MouseMove(Button As Integer, Shift As Integer, X As Single, y As Single)
  Label4.ForeColor = &HC00000
End SubPrivate Sub txtName_DblClick()
  Dim ReturnValue
  ReturnValue = Shell("osk.EXE", 1) 
  AppActivate ReturnValue
End SubPrivate Sub txtName_KeyPress(KeyAscii As Integer)
  If KeyAscii = 13 Then SendKeys "{TAB}"
  
End SubPrivate Sub txtPassword_KeyPress(KeyAscii As Integer)
  If KeyAscii = 13 Then Call Label1_Click
End Sub

解决方案 »

  1.   

    Public Function cnn() As ADODB.Connection     '共享数据库连接
      Set cnn = New ADODB.Connectioon
      cnn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=db_SSS"  'Provider=SQLOLEDB.1;代表数据库的提供者 Persist Security Info=False;代表是否设置数据库的安全信息 User ID=sa;代表SQL Server中的用户名,安装SQL Server默认名称为sa,密码为空 Initial Catalog=db_SSS 代表系统使用的数据库
    End FunctionPublic Sub main()
      '附加数据库
    On Error Resume Next
     con.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa"
     con.Open     '打开数据库连接
     Set rs = New ADODB.Recordset
      '开始附加数据库
      str = "EXEC sp_attach_db @dbname = N'db_SSS', @filename1 = N'" + "C:\Program Files\Microsoft SQL Server\MSSQL\Data\db_SSS_Data.MDF" + "', @filename2 = N'" + "C:\Program Files\Microsoft SQL Server\MSSQL\Data\db_SSS_Log.LDF" + "'"
     'rs.Open str, con, 1, adLockOptimistic
      Set rs = con.Execute(str)
      con.Close  '关闭数据库连接  '公共数据库连接字符串
     PublicStr = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=db_SSS"
      frm_Star.Show
    End Sub刚忘了这个了
      

  2.   

    为什么要  Adodc1.Refresh                           
      

  3.   

    PublicStr   =   "Provider=SQLOLEDB.1;Persist   Security   Info=False;User   ID=sa;Initial   Catalog=db_SSS "里面缺了个data source=db_SSS(数据库名)
      

  4.   

    上面adodc控件,下面ado,写得太乱了Provider=SQLOLEDB.1;Persist   Security   Info=False;User   ID=sa;Initial   Catalog=db_SSS "     'Provider=SQLOLEDB.1;代表数据库的提供者   Persist   Security   Info=False;代表是否设置数据库的安全信息   User   ID=sa;代表SQL   Server中的用户名,安装SQL   Server默认名称为sa,密码为空   Initial   Catalog=db_SSS   代表系统使用的数据库 明显的字符串错了,建议用adodc生成连接字符串