Avelino João 21/1/2013, 10:16
RuiSergio esse codigo não é pra criar tabela local mais para vincular tabela em tempo de execução veja que vinculação uso drive SQL Native Client mais se voce não tiver a drive instalada pode usar assim SQL Server se continuar com dificuldade posta o seu banco de dado para nós analizamos.
Option Compare Database
'/ / Nome: AttachDSNLessTable
'/ / Objetivo: Criar uma tabela vinculada ao SQL Server sem usar um DSN
'/ / Parâmetros
'/ StLocalTableName /: Nome da tabela que você está criando no banco de dados atual
'/ StRemoteTableName /: Nome da tabela que você está ligando para o banco de dados SQL Server
'/ StServer /: Nome do SQL Server que você está ligando
'/ StDatabase /: Nome do banco de dados SQL Server que você está ligando
'/ / StUsername: Nome do usuário do SQL Server que pode se conectar ao SQL Server, deixe em branco para usar uma conexão confiável
'/ / StPassword: senha do usuário SQL Servidor
Function AttachDSNLessTable(stLocalTableName As String, stRemoteTableName As String, stServer As String, stDatabase As String, Optional stUserName As String, Optional stPassword As String)
On Error GoTo AttachDSNLessTable_Err
Dim td As TableDef
Dim stConnect As String
For Each td In CurrentDb.TableDefs
If td.Name = stLocalTableName Then
' deletar as tabelas local ao sair do sistema
CurrentDb.TableDefs.Delete stLocalTableName
End If
Next
If Len(stUserName) = 0 Then
'/ / Use autenticação confiável se stUsername não é fornecido.
stConnect = "ODBC; DRIVER ={SQL Native Client};SERVER=" & stServer & ";DATABASE=" & stDatabase & ";Trusted_Connection=Yes"
Else
'/ / AVISO: Isto irá poupar o nome de usuário e a senha com as informações da tabela vinculada.
stConnect = "ODBC;DRIVER={SQL Native Client};SERVER=" & stServer & ";DATABASE=" & stDatabase & ";UID=" & stUserName & ";PWD=" & stPassword & ";Option=3;"
End If
Set td = CurrentDb.CreateTableDef(stLocalTableName, dbAttachSavePWD, stRemoteTableName, stConnect)
CurrentDb.TableDefs.Append td
AttachDSNLessTable = True
Exit Function
AttachDSNLessTable_Err:
AttachDSNLessTable = False
MsgBox "AttachDSNLessTable encontrou um erro inesperado: " & Err.Description
End Function
Function CreateConnection()
Dim strPasswd As String
Dim strServer As String
Dim strUser As String
Dim strDB As String
Dim strPort As String
strPasswd = "007"' Senha do servidor
strUser = "sa"' Usuario do servidor
strServer = "127.32.9.11\SQLEXPRESS" 'IP do servidor
strDB = "teste"'Banco de Dado
strPort = "1433"'Porta do servidor
Rem error
On Error Resume Next 'Tratamento de erro
'Essa tabela devem ser ligados
'A primeira tabela venda é aqui vai ser criada no access a outra dbo. venda é aqui esta no servidor
Set dummy = AttachDSNLessTable("Venda", "dbo.Venda", strServer, strDB, strUser, strPasswd)
End Function