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 ServidorFunction 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
Obs: Depois de criar o modulo e adicionar esse codigo para vincular as tabelas ao iniciar o access, deve criar um macro autoexec e adicionar o codigo =CreateConnection()na acção ExecutarCódigo.
Esse é a forma que eu uso para trabalhar com servidores SQL Server, MySQL ou Oracle funciona normalmente com essa forma também podem trabalhar com formularios desvinculado as tabelas.