 VB6
- Acessando o SQL Server 2005 Express Edition
 VB6
- Acessando o SQL Server 2005 Express Edition
|  | Já publiquei vários artigos mostrando como acessar via Visual Basic as principais bases de dados usadas atualmente : Access, SQL Server, FireBird, MySQL e PostGree. | 
Vou incluir nesta lista o SQL Server 2005 Express Edition pois neste artigo eu mostro como você pode efetuar a conexão com uma base de dados SQL Server 2005 Express local e com um banco de dados .mdf em um diretório qualquer usando o novo provedor SQLNCLI.
A primeira coisa que você tem que atentar é que quando você instala o SQL Server 2005 (seja a versão Express ou a completa) é incluído um novo provedor de bases de dados OLE DB chamado SQLNCLI.
Este provedor deve ser usado na string de conexão que é utilizada para efetuar a conexão com o SQL Server 2005. Ele ocupou o lugar do provedor SQLOLEDB que é usado para acessar uma base de dados SQL Server 2000.
Para acompanhar este artigo você vai precisar ter instalado os seguintes itens:
Acessando o SQL Server 2005 Express Local
Vou acessar a tabela Clientes do banco de dados Cadastro que eu criei no SQL Server 2005 Express usando o Management Studio. Se você não sabe como criar um banco de dados usando esta ferramenta leia o artigo: VB.NET 2005 - Criando Objetos Básicos de dados.
Abaixo eu mostro o meu SQL Server 2005 Express aberto no Management Studio exibindo o banco de dados Cadastro e a tabela Clientes com alguns registros que eu criei diretamente na ferramenta.
Nota: Se você não conhece o Management Studio leia o artigo: .NET 2005 - Usando o SQL Server Management Studio
|  | 
Agora eu vou criar um projeto do tipo STANDARD EXE no Visual Basic 6.0 com o nome de VB_SQL2006.vbp, e, no formulário padrão eu vou usar os seguintes controles:
Para incluir uma referência ao componente MSHFlexGrid , clique no menu Project -> Components e a seguir na aba Controls marque o componente: Microsoft Hierarchical FlexGrid Control 6.0 (SP4) (OLEDB)

Não esqueça também de incluir uma referência a biblioteca ADO - Microsoft ActiveX Data Objects 2.8 Library - para ter acesso aos objetos de acesso a dados ADO.

Abaixo temos o leiaute usado no formulário:

Vamos agora digitar o código no evento Click do botão - Exibir Dados - Clientes - para acessar a tabela Clientes e mostrar os dados no grid.
| Private Sub Command1_Click()    ' A conexão com o banco de dados
    Dim cn As ADODB.Connection
    Set cn = New ADODB.Connection
    ' A cadeia de conexão
    Dim SQL As String
    ' Selecionando os dados da tabela Clientes
    SQL = "SELECT * FROM Clientes"    cn.Open  "Provider=SQLNCLI; " & _
                  "Initial Catalog=Cadastro; " & _
                  "Data Source=(local)\SQLEXPRESS; " & _
                  "integrated security=SSPI; persist security info=True;"
    ' O recordset para acessar s dados
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset    ' Abrindo o recordset de forma estática pois não vou tratar os dados
    rs.Open SQL, cn, adOpenStatic    ' Atribuir o recordset ao FlexGrid
    Set MSHFlexGrid1.DataSource = rs       'fecha o recordset e a conexao
    rs.Close
    cn.CloseEnd Sub | 
Executando o projeto , teclando F5, e clicando no botão iremos obter:
|  | 
Para exibir os registros da linha selecionada no Grid nas caixas de texto eu criei a seguinte rotina ligada ao evento Click do MSHFlexGrid:
| Private Sub MSHFlexGrid1_Click()
 With MSHFlexGrid1
            Text1.Text = .TextMatrix(.Row, 1)   
            Text2.Text = .TextMatrix(.Row, 2)  
            Text3.Text = .TextMatrix(.Row, 3) 
            Text4.Text = .TextMatrix(.Row, 4)   
   End With
End Sub | 
Acessando um arquivo SQL Server 2005 Express em um diretório
Para poder acessar um banco de dados SQL Server que esta em uma pasta qualquer teremos que indicar a rota (caminho) do arquivo com a extensão .mdf. A string de conexão deverá ser alterada para indicar o caminho , a instância e o provedor SQLNCLI. Veja abaixo:
Provider=SQLNCLI; 
AttachDBFileName= caminho completo do banco de dados .mdf;
Data Source=(local)\SQLEXPRESS;
integrated security=SSPI; persist security info=True;
Vamos então acessar o banco de dados Northwind.mdf que esta na pasta c:\dados em minha máquina local (Veja na sua máquina o local correto), e, vamos exibir os dados da tabela Employees.
O código que deverá ser colocado no evento Click do botão - Exibir dados Employees - é o seguinte:
| Private Sub Command2_Click()
    ' A conexão com o banco de dados
    Dim cn As ADODB.Connection
    Set cn = New ADODB.Connection
  
    '  variavel SQL
     Dim SQL As String       ' Para usar um arquivo diretamente
    Dim BD As String    ' Caminho do banco de dados
    BD = "C:\dados\Northwnd.mdf"    ' comando SQL para selecionar os dados da tabela Employees
    SQL = "SELECT * FROM Employees"
    
    cn.Open "Provider=SQLNCLI; " & _
                 "AttachDBFileName=" & BD & "; " & _
                 "Data Source=(local)\SQLEXPRESS; " & _
                 "integrated security=SSPI; persist security info=True;"
    'recordset para acessar os dados
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset    ' Abrir o recordset de forma estática
    rs.Open SQL, cn, adOpenStatic
     'atribuir o recordset ao grid    
    Set Me.MSHFlexGrid1.DataSource = rs        rs.Close
    cn.CloseEnd Sub | 
Executando o projeto e clicando no botão - Exibir dados Employees - iremos obter:
|  | 
Pegue o projeto completo aqui:
 VB_SQL2005.zip
VB_SQL2005.zip
Eu sei é apenas o velho e bom Visual Basic mas eu 
gosto... 
Referências :
José Carlos Macoratti