COMO EXECUTAR UMA COMANDO A PARTIIR DE VARIAVEIS

FFECHER 16/04/2011 07:57:40
#371535
RETIFICANDO A SOLICITAÇÃO ANTERIOR:

Pessoal[Ô]:
Como faço para execar o seguinte comando através de uma MACRO (ou algo semelhante):
DIRETORIO=[Ô]C:\DIRETORIO\BANCO.MDB[Ô]
COMANDO=[Ô][Ô]select * from CLIENTES order by cod_CLIENTES[Ô]

Data1.DatabaseName = DIRETORIO
Data1.RecordSource = COMANDO
Data1.Refresh

GOSTARIA DE ENVIAR os seguintes Parâmentros:
If AbreTabela([Ô]CLIENTES[Ô],[Ô]1[Ô],DIRETORIO,COMANDO[Ô])

End If
A FUNÇÃO RECEBERIA OS DADOS ABRINDO A AREA DE TRABALHO COM A TABELA ESCOLHIDA

Function AbreTabela(NOMEARQ, AREA DIRETORIO, COMANDO) as Boolean
Dim frs1, frs2, frs3 As String
On error goto erro
frs1 = [Ô]Data[Ô] & sel & [Ô].DatabaseName = [Ô] & DIRETORIO
frs2 = [Ô]Data[Ô] & sel & [Ô].RecordSource = [Ô] & COMANDO
frs3 = [Ô]Data[Ô] & sel & [Ô].Refresh[Ô]
[ô]como Executar os comandos acima???
AbreTabela=True
exit sub
erro:
MsgBox ([Ô]Ausência da Tabela [Ô] & NOMEARQ)
AbreTabela=False
End If


Obrigado.
Julio
TECLA 16/04/2011 08:44:49
#371541
Ao RETIFICAR um post aqui no site, não há necessidade de se postar um texto duplicado, clique no botão ALTERAR que está alocado no lado direito do post e em seguida GRAVAR.

Quanto à sua dúvida, porque não escreve uma rotina em ADO e deixa de usar os controles vinculados (objeto Data e CIA)?
FFECHER 16/04/2011 18:52:27
#371572
Tecla ...
Obrigado pela diga... nao sabia deste detalhe...
Com relaçào a dúvida: Todas as minhas rotinas já estão escritas em DAO e mudar nesta altura do campeonato e contraproducente...
Aguardo outra ajuda.
Obigado.
Julio
TECLA 16/04/2011 21:44:37
#371579
O caminho é por aqui:

Função
Private Function AbreTabela(DIRETORIO As String, COMANDO As String) As Boolean
On Error Goto erro
Data1.DatabaseName = DIRETORIO
Data1.RecordSource = COMANDO
Data1.Refresh
AbreTabela=True
Exit Sub
erro:
MsgBox err.Description
AbreTabela = False
End If


Chamada a função
Dim ret As Boolean
ret = AbreTabela([Ô]C:\Banco.mdb[Ô], [Ô]SELECT * FROM Clientes[Ô])
FFECHER 18/04/2011 08:25:29
#371630
Tecla
Bom Dia...
Obrigado pela sua boa vontade em solucionar o problema.
Da forma que você apresenta soluciona, todavia, o exemplo apresentado abre a tabela em DATA1 o que eu gostaria é o sistema abrir a tabela no DATA que eu indicar: por exemplo: Se eu enviasse a função dizendo que a tabela específica deva abrir em DATA5. Ao chamar a função pelo comando:

ret=AbreTabela([Ô]C:\Banco.mdb[Ô], [Ô]SELECT * FROM Clientes[Ô],Data5)

Como ficaria a função?
Obrigado mais uma vez...
Um grande abraço
Julio
MARCELO.TREZE 18/04/2011 09:18:33
#371644
Resposta escolhida
A solução foi o tecla que postou, vou apenas indicar a modificação que solicitou.

Private Function AbreTabela(DIRETORIO As String, COMANDO As String, DtaCtrl As Data) As Boolean
On Error Goto erro
DtaCtrl .DatabaseName = DIRETORIO
DtaCtrl .RecordSource = COMANDO
DtaCtrl .Refresh
AbreTabela=True
Exit Sub
erro:
MsgBox err.Description
AbreTabela = False
End If


Dim ret As Boolean
ret = AbreTabela([Ô]C:\Banco.mdb[Ô], [Ô]SELECT * FROM Clientes[Ô],Data5)


Por favor se funcionar lembre-se pontuação deve ser atribuída ao colega TECLA

FFECHER 18/04/2011 10:24:25
#371668
Obrigado aos companheiros
Marcelo - Treze e Tecla.
Problema resolvido.
Obrigado.
Julio
Tópico encerrado , respostas não são mais permitidas