EXCEL COM BD VIA VBA

AARIBEIRO 03/02/2011 11:03:41
#364204
Olá!
Caros,
Desenvolvi um banco de Dados em Access 2000 e existem várias planilhas que se conecta ao BD e grava, consulta e exclui registros. Esses registros são carregados nas planilhas para poder gerar gráficos. Meio que um sistema de indicadores.
Problema 1- O banco está crescendo e as consultas estão ficando lentas; Preciso mudar a conecção e não sei qual é mais rápida;
Problema 2- O meu gerente quer que eu mude o banco de dados para sql server 2008 e eu não tenho a menor idéia de como fazer a conexão?ão com SQL e colocar acesso e direcionar o banco na rede;
Para gravar nem é lento mas para Consultar....

Por favor me ajudem...

Abaixo as conexão:

Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
Range([Ô]A2[Ô]).Select
Dim sql As String
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim i As Integer
Set cn = New ADODB.Connection
cn.ConnectionString = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=h:\peg\indicadores\IndicadoresProPay.mdb;[Ô]
cn.Open
Set rs = New ADODB.Recordset
Dim DataC As Date
DataC = Worksheets([Ô]Clientes_Ativos_Dinamica[Ô]).Range([Ô]e1[Ô]).Value
sql = [Ô]SELECT * from Processamentos [Ô] & _
[Ô]where month(Competência) = [Ô] & Month(DataC) & _
[Ô] and year(Competência) = [Ô] & Year(DataC)
[ô]gera o recordset para o sql sobre a conexao definida
rs.Open sql, cn
Range([Ô]a1[Ô]).Value = [Ô]Cliente[Ô]
Range([Ô]b1[Ô]).Value = [Ô]Competência[Ô]
Range([Ô]c1[Ô]).Value = [Ô]Folha de Pagamento[Ô]
i = 2
If Not rs.EOF Then
Do While Not rs.EOF
Range([Ô]a[Ô] & i).Value = rs(0)
Range([Ô]b[Ô] & i).Value = rs(1)
Range([Ô]c[Ô] & i).Value = rs(2)
rs.MoveNext
i = i + 1
Loop
End If
cn.Close
End Sub

Para incluir uso a mesma conexão e só altero o código:
cn.Open
Set rs = New ADODB.Recordset
rs.Open [Ô]BaseOcorrencias[Ô], cn, adOpenKeyset, adLockPessimistic
rs.AddNew
Worksheets([Ô]Principal[Ô]).Range([Ô]p28[Ô]).Value = [Ô]Salvando... Aguarde...[Ô]
rs!Executante = Worksheets([Ô]Config[Ô]).Range([Ô]Executante[Ô]).Value
rs!Area = Worksheets([Ô]Config[Ô]).Range([Ô]area[Ô]).Value
rs.Update
rs.Close
Set rs = Nothing
Set cn = Nothing

NETMANIA 18/02/2011 15:57:04
#365895
Na parte do Excel você não terá que fazer muita coisa (fora mudar a string de conexão, que você pode pegar neste site www.connectionstrings.com).

Quanto migrar o seu Access para o SQL Server 2008, você pode usar o programa ESF Database Migration Toolkit - Pro. Ele consegue copiar a estrutura e dados de um banco de dados para outro, no seu caso, do Access para SQL Server.

Se precisar de mais ajuda, deixe uma mensagem no sistema de correio do VBMania para poder ver uma maneira de te ajudar.
Tópico encerrado , respostas não são mais permitidas