Notifications
Clear all

Dificuldades com SQL no Excel

18 Posts
2 Usuários
0 Reactions
3,348 Visualizações
(@trindade)
Posts: 0
New Member
Topic starter
 

Boa noite, Srs.

Encontrei um código na internet onde parcialmente esta funcionando, meu combos estão preenchendo normalmente, mas meu SQL para preencher os TextBox não esta funcionando aparece o seguinte erro:

Gostaria da ajuda dos senhores, ou até mesmo indicações para poder sanar a duvida.

Arquivo que estou utilizando como teste é esse aqui:

 
Postado : 14/11/2014 8:44 pm
(@trindade)
Posts: 0
New Member
Topic starter
 

Bom dia, rlm.

A POG que eu tinha feito ficou até funcional, e está rodando na boa, mas com a sua sugestão o código ficou mais enxugado e bem mais simples.
A duvida agora é o seguinte em qualquer PC que eu vá rodar aplicação ele assumira o padrão americano ?

Quando tiver tempo e quiser dar uma olhada, segue uma previa do meu projeto:

 
Postado : 26/11/2014 6:01 am
(@rlm)
Posts: 0
New Member
 

Não é que vá assumir o padrão, o padrão de Display no Excel é o definido no sistema operacional.
Porem internamente, como data é "arquivada" como numero (hoje é internamente 41969, 24/11/2014 é uma mascara de apresentação), então ao utilizar VBA e/ou SQL será melhor entendido (não é mandatório) no padrão mês/dia/ano; creio eu (não vi documentação sobre isso) por ser desenvolvido inicialmente pela MS-US.
Assim sendo não há problema de compatibilidade nenhuma

 
Postado : 26/11/2014 11:39 am
(@trindade)
Posts: 0
New Member
Topic starter
 

Bom dia, rlm.

Mais uma vez eu com minhas duvidas mirabolante, agora estou tentando fazer com que a Page " Ano / Mes ", no ComboBoxAno fique com valor distinct e que o ComboBoxMes carregue de acordo com o ComboBoxAno, até tentei utilizar a mesma ideia do Page " Cliente ", mas não tive muito sucesso.

Tentei montar com SQL, mas o ano esta repetindo varias vezes, usei o seguinte código:

'CHAMAR O SQL PARA CARREGAR O COMBOBOX
Private Sub UserForm_Initialize()

    PopularControleAno ComboBoxAno, ThisWorkbook.Sheets("BANCO_DADOS").Columns("B")

End Sub

'CARREGAR O ANO DISTINCT DENTRO DO COMBO
Private Sub PopularControleAno(ctrl As msforms.control, rngSource As Range)
 'ctrl pode ser um controle ComboBox ou ListBox
 'Use , de preferência colunas inteiras como parâmetro rngSource.
 
 Dim sSql As String
 Dim sPlanilha As String
 Dim sCampo As String
 Dim rs As ADODB.Recordset
 
 Set rs = New ADODB.Recordset
 
    sPlanilha = "[" & rngSource.Parent.Name & "$]"
    sCampo = "[" & rngSource.Range("A1") & "]"
    
    sSql = ""
    sSql = sSql & " " & "SELECT DISTINCT " & sCampo
    sSql = sSql & " " & "FROM " & sPlanilha
    sSql = sSql & " " & "WHERE " & sCampo & " IS NOT NULL"
    
    Set rs = cn.Execute(sSql)
    
    ctrl.Clear
    
        Do While Not rs.EOF
        
            ctrl.AddItem Format(CDate(rs.Fields(0)), "YYYY")
            rs.MoveNext
            
        Loop
    
    rs.Close
 
End Sub

' CARREGA O MES CONFORME O ANO SELECIONA
Private Sub CarregaMes(ByVal Categoria As String)

    Dim Linha As Integer, ColunaProduto As Integer, ColunaCategoria As Integer
    
    Linha = 2
    ColunaProduto = 2
    ColunaCategoria = 1
    
    Me.ComboBoxMes.Clear
    
    With Sheets("BANCO_DADOS")
    
        Do While Not IsEmpty(.Cells(Linha, ColunaProduto))
        
            If .Cells(Linha, ColunaCategoria).Value = Categoria Then
            
                Me.ComboBoxMes.AddItem .Cells(Linha, ColunaProduto).Value
                
            End If
            
            Linha = Linha + 1
            
        Loop
        
    End With
    
End Sub

Tentei realizar conversão nas data, pra ver se mudava, mas sem sucesso...

Para melhor entendimento, segue o arquivo:

 
Postado : 28/11/2014 9:12 am
Página 2 / 2