REFERENCIAR VARIAVEL POR VALOR DE STRING

FBGSYSTEMS 18/06/2014 15:57:13
#439004
Boa tarde galera.
Tenho um cliente onde utiliza num mesmo servidor 3 sistema iguais, porém em base de dados diferentes.
(eu sei que o ideal seria fazer multi empresa, porem o cliente preferiu nao fazer assim)

Agora estou precisando criar um módulo para exibir num grid dados de uma determinada tabela.

Como são apenas 3 e a chance de aumentar são bem remotas, criei 3 variaveis de conexao (base1,base2 e base3) e abri as 3 normalmente.
Ai para exibir preenchi um combobox com o nome das variaveis correspondentes as conexoes(base1, base2 e base3)

Ok. Só que apenas uma delas está dando certo.

Vou colocar trecho do código para ficar mais claro.


    For i = 0 To cmbUnidade.ListCount - 1
If cmbUnidade.List(i) = [Ô]TODOS[Ô] Then Exit For [ô]SE O ITEM FOR [ô]TODOS[ô] sai do laço

varUnidadeUtilizar = LCase(CStr(cmbUnidade.List(i)))

entra_no_enche_list:

sql = [Ô][Ô]
sql = [Ô]select f.*, c.* from frete as f INNER JOIN controleabastecimento as c [Ô]
sql = sql & [Ô] on (f.codabastecimento = c.codigo) where f.placa=[ô][Ô] & cmbPlaca & [Ô][ô][Ô]

varDataInicio = diainicio & [Ô]/[Ô] & cmbMes.ListIndex + 1 & [Ô]/[Ô] & cmbAno
varDataFim = diafim & [Ô]/[Ô] & cmbMes.ListIndex + 1 & [Ô]/[Ô] & cmbAno

sql = sql & [Ô] and data between [ô][Ô] & Format(varDataInicio, [Ô]yyyy-mm-dd[Ô]) & [Ô][ô] and [ô][Ô] & Format(varDataFim, [Ô]yyyy-mm-dd[Ô]) & [Ô][ô][Ô]



Set dsmostra = New ADODB.Recordset
dsmostra.open sql, varUnidadeUtilizar, adOpenKeyset, adLockOptimistic [ô] aqui a conexao
grid.Rows = 1
With grid
Dim varTotalAReceber As Double
Dim varTotalPagar As Double

Do While Not dsmostra.EOF
.Rows = grid.Rows + 1
[ô]enche o grid aqui
dsmostra.MoveNext
Loop


End With

Next


O primeiro laço funciona normalmente, porem a partir do segundo item do combo não da certo.
Recebo o erro [Ô]Nome da fonte de dados não encontrato ou nenhum driver padrao especificado [Ô]

Alguém tem alguma sugestão de como resolver ou de outra maneira que posso fazer isto ?
FILMAN 18/06/2014 22:43:43
#439014
tente colocar isso antes do NEXT do FOR

dsmostra.close
Set dsmostra = Nothing

veja se resolve o problema

Caso não resolva me mostre quais os valores estão passando na variavel varUnidadeUtilizar
FBGSYSTEMS 19/06/2014 18:26:23
#439041
FILMAN, não deu certo.
O que fiz agora é uma function para retornar a string de conexao, então eu fiz uma variavel ADODB.CONNECTION no meu for para a cada um eu conecto naquela base de dados e mostro os dados.

Obrigado pela ajuda,
Tópico encerrado , respostas não são mais permitidas