USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  DBGrid - Formato dos dados exibidos
fburgardt
TABOÃO DA SERRA
SP - BRASIL
ENUNCIADA !
Postada em 02/10/2006 09:25 hs            
Bom dia!
É o seguinte, não consigo formatar os dados tipo número que são exibidos na DBGrid. Este é o cenário:
- Estou utilizando DAO com banco de dados ACCESS, um DBGrid (que chamei de dbgrdCustos) e um Controle DATA (que chamei de dtaCustos).
 
Existe um formulário principal (frmPrincipal) onde existem 3 ComboBox (Cliente, OS e Evento). Selecionando o cliente, aparecem somente as OS´s deste cliente na ComboBox OS. E selecionando uma dessas OS´s, aparecem somente os Eventos desta OS na ComboBox Evento. Ao clicar em algum evento, o ID desse evento é guardado em uma variável (varIDEvent).
Ao clicar em OK, é carregado outro formulário (frmCustos) onde existe a DBGrid + o controle DATA. E no Load deste formulário existe o código abaixo, responsável pelo preenchimento da DBGrid:
 
dtaCustos.RecordSource = ("SELECT Pedido,NF,Data,Valor,PerICMS,ICMS,PerIPI,IPI,Fornec,Obs " & _
                          "FROM ((tblFornec INNER JOIN tblDados " & _
                          "ON tblFornec.IDFrnc = tblDados.IDFornec) " & _
                          "INNER JOIN tblEvento " & _
                          "ON tblDados.IDEvento = tblEvento.IDEvent) " & _
                          "WHERE IDEvento =  " & " " & frmPrincipal.VarIDEvent & " " & _
                          "ORDER BY Data ")
 
Ou seja, o RecordSource do controle DATA é a instrução SQL acima, onde só quero que sejam exibidos os eventos de uma determinada OS de um determinado cliente. Reparem que na cáusula ("WHERE IDEvento =  " & " " & frmPrincipal.VarIDEvent & " )
é que uso o valor do ID clicado na combobox do frmPricipal.
 
Desculpem escrever tanto, mas até aqui está tudo certo. A DBGrid faz exatamente o que eu quero (exibir o resultado conforme a instrução SQL).
 
Mas o problema é que não consigo formatar os dados exibidos na DBGrid.
 
O que eu tentei fazer para resolver o problema:
- A instrução SQL traz cria as colunas automaticamente. Mas sempre serão 10 colunas. Usei a opção EDIT e inseri o mesmo número de colunas que a instrução SQL cria, mas quando executo o código, tudo fica em branco. A quantidade de linhas até aparece na tela, mas tudo em branco. Linhas e colunas em branco. Sem informações e não é gerado nenhum erro.
- Tentei também usar o controle Adodc com DataGrid no lugar de controle DATA com DBGGrid, pois nas propriedades do componente DataGrid existe uma opção "Format".
Pois bem, fiz isso. Mas tive que usar o DataEnvironment para poder mecher das propriedades do DataGrid. Deu certo até certo ponto porque eu consigui exibir os dados formatados, mas não consegui mais usar a variável VarIDEvent (vinda do clique da combobox Evento do frmPrincipal). Não consegui usá-la porque o código SQL fica dentro do DataEnvironment e EU ACHO que lá ele não considera variáveis. Pelo menos eu tentei e não consegui.
 
Resumindo, esse é o problema:
- Se eu quiser usar uma variável para resgatar do banco de dados apenas as informações necessárias, eu não consigo formatar a DBGrid.
- Se eu uso o DataGrid, não cosigo usar a variável para interagir com o clique do usuário vindo de um formulário.
 
As minhas perguntas:
- Isso tem sentido? Fiz alguma besteira?
- Existe a possibilidade do DataEnvironment reconhecer, no código SQL, que eu preciso de uma variável??
 
Obrigado!!
 
Flávio
TÓPICO EDITADO
 
ArtSoft
SAO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 02/10/2006 15:31 hs         
Exemplo 1 : Operando com Data Environment =>
SQL = "Select Campo1, Campo2, Campo3, Format(Campo4, 'DD/MM/YYYY') as Data, Format(Campo5,'#,##0.00 ') as Valor FROM Tabela
with DataEnvironment1
 .rsTabela.open SQL
end with
With dbGrid1       
        Set .DataSource = DataEnvironment1
        .DataMember = "Tabela"
        For Cols = 0 To CountVar
            .Columns(Cols).Visible = False
            .Columns(Cols).Alignment = dbgCenter
        Next Cols
end with

Exemplo 2 : Operando com DataControl =>
sql = "Select Campo1, Campo2, Campo3, Format(Campo4, 'DD/MM/YYYY') as Data, Format(Campo5,'#,##0.00 ') as Valor FROM Tabela1 "
With Adodc1
    .RecordSource = sql
    .Refresh
End With
With dbGrid1
        Set .DataSource = Adodc1
        .DataMember = "" '"Tabela"
        For Cols = 0 To CountVar
            .Columns(Cols).Visible = False
            .Columns(Cols).Alignment = dbgCenter
        Next Cols
End With

Alexandre Costa
ArtSoftSystems

Skype:artsoftsystems
MSN:alexandre.artsoft@hotmail.com
artsoftsystems@uol.com.br

   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página