REFERENCIAR VARIAVEL POR VALOR DE STRING
                    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.
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 ?
                
            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 ?
                    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
            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
                    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,
            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