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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Como melhorar estes codigos?
MINER
POTIRENDABA
SP - BRASIL
ENUNCIADA !
Postada em 27/01/2006 07:10 hs            
ola galerinha
seraq teria como melhorar estes codigos abaixo?
 
uso DAO (porem estou começanco a migrar pra ADO)
seguinte
Pra conexao com BD uso:
Set BD = OpenDatabase("c:cpccpc.mdb")
pra abrir recordset uso:
Set rs = BD.OpenRecordset("Select tbcompra.nome from tbcompra where data =  #" & Format(t1.Text, "mm / dd / yyyy") & "# order by tbcompra.data")
OBS: somente conecto ao BD quando vou fazer alguma operação e ja em seguida desconecto do BD.
 
pra inserir dados no BD uso :
BD. execute "insert into ........"
pra alterar uso o . execute e SQl Update e excluir a SQL Delet
 
e pra exibir os dados uso um MSHGrid com o seguinte código:
I = 0
valor = 0
Grid.Rows = 1
Do While Not rs.EOF
            With Grid
                .TextMatrix(0, 0) = "Cod."
                .TextMatrix(0, 1) = "Data"
                .TextMatrix(0, 2) = "QTD"
                .TextMatrix(0, 3) = "Codpro"
                .TextMatrix(0, 4) = "Nome"
                .TextMatrix(0, 5) = "Corte"
                .TextMatrix(0, 6) = "Chapa"
                .TextMatrix(0, 7) = "Valor"
                .TextMatrix(0, 8) = "OBS"
                .TextMatrix(0, 9) = "V/P"
                nLinhas = .Rows + 1
                .Rows = nLinhas
                nPos = .Rows - 1
                .Row = nPos
                I = I + 1
                .Col = 0
                .Text = rs![CODIGO]
                .Col = 1
                .Text = Format(rs![Data], "dd/mm/yyyy")
                .Col = 2
                .Text = rs![qtd]
                .Col = 3
                .Text = rs![codpro]
                .Col = 4
                .Text = rs![nome]
                .Col = 5
                .Text = rs![corte]
                .Col = 6
                .Text = rs![chapa]
                .Col = 7
                .Text = Format(rs![valor], "##,##0.00")
                .Col = 8
                If IsNull(rs![obs]) Then
                .Text = ""
                Else
                .Text = rs![obs]
                End If
                .Col = 9
                If IsNull(rs![vp]) Then
                .Text = ""
                Else
                .Text = rs![vp]
                End If
                .FixedRows = 1
                .Refresh
            End With
rs.MoveNext
Loop
t1.SelStart = 0
t1.SelLength = Len(t1.Text)
rs.Close
BD.Close
teria algo a melhorar nisso tudp pessoal???
aceito qualquer sugestaum
 
Deus abençoe a nós todos.
 
 
 
 
   
Keyo
Pontos: 2843
CURITIBA
PR - BRASIL
ENUNCIADA !
Postada em 27/01/2006 08:02 hs            
'Geralmente construo a estrutura do grid no load do form
private sub form_load()
    'cor da fonte
    grid.ForeColor = vbBlue
    'largura da celula
    grid.ColWidth(0, 0) = 1000
    grid.ColWidth(1, 0) = 5400
    grid.ColWidth(2, 0) = 1100
    grid.ColWidth(3, 0) = 1200
    grid.ColWidth(4, 0) = 1300
    grid.ColWidth(5, 0) = 1500
    grid.ColWidth(6, 0) = 1300
    grid.ColWidth(7, 0) = 1300
    grid.ColWidth(8, 0) = 750
    'alinhamento do texto
    grid.ColAlignment(0) = flexAlignLeftCenter
    grid.ColAlignment(1) = flexAlignLeftCenter
    grid.ColAlignment(2) = flexAlignLeftCenter
    grid.ColAlignment(3) = flexAlignRightCenter
    grid.ColAlignment(4) = flexAlignRightCenter
    grid.ColAlignment(5) = flexAlignRightCenter
    grid.ColAlignment(6) = flexAlignRightCenter
    grid.ColAlignment(7) = flexAlignRightCenter
    grid.ColAlignment(8) = flexAlignLeftCenter
    'cabecalho
    grid.TextMatrix(0, 0) = "Código:"
    grid.TextMatrix(0, 1) = "Produto:"
    grid.TextMatrix(0, 2) = "Margem:"
    grid.TextMatrix(0, 3) = "Desconto:"
    grid.TextMatrix(0, 4) = "Custo R$:"
    grid.TextMatrix(0, 5) = "Peso em Kg.:"
    grid.TextMatrix(0, 6) = "Estoque:"
    grid.TextMatrix(0, 7) = "Preço:"
end sub
'depois a rotina de preenchimento
private sub enchegrid()
      grid.rows = 2
      for i = 0 to 7
            grid.textmatrix(1,i) = ""
       next
      if rs.eof = false then
            do while not rs.eof
                   grid.textmatrix(grid.rows - 1,0) = rs!campo
                   grid.textmatrix(grid.rows - 1,1) = rs!campo
                   grid.textmatrix(grid.rows - 1,2) = rs!campo
                   grid.textmatrix(grid.rows - 1,3) = rs!campo
                   grid.textmatrix(grid.rows - 1,4) = rs!campo
                   grid.textmatrix(grid.rows - 1,5) = rs!campo
                   grid.textmatrix(grid.rows - 1,6) = rs!campo
                   grid.textmatrix(grid.rows - 1,7) = rs!campo     
                   grid.rows = grid.rows +1
                   rs.movenext
         loop
         grid.rows  = grid.rows - 1
    else
          msgbox "Registro não encontrado",vbinformation,"Sistema"
     end if 
   
Daniel
Pontos: 2843
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 27/01/2006 08:47 hs            
Eu normalmente vinculo os meus MSHflexGrid a um objeto datar dessa forma o grid automaticamente será preenchido automaticamente, a única coisa que vou ter que fazer é montar o 'cabeçalho' (a linha 0 do grid)
exemplo:
    X1 = "Format$([Conteudo]![Valor1],'#,###.00')"
    Data1.DatabaseName = Base_Relato.Name
    Data1.RecordSource = "SELECT Conteudo.Valor2, Conteudo.Texto11, Conteudo.Texto1, Conteudo.Texto2, Conteudo.Texto3," & X1 & " AS Expr2, Conteudo.Valor21, Conteudo.Texto10, Conteudo.Obs FROM Conteudo ORDER BY Conteudo.Texto11, Conteudo.Texto2, Conteudo.Texto10;"
    Data1.Refresh

dsmn
   
MINER
POTIRENDABA
SP - BRASIL
Postada em 27/01/2006 09:01 hs            
Galera a tendencia em usar Objeto tipo o data naum seria de ficar amais lento?
ou estou equivocado???
daniel agradeço sua dica ai mas no meu caso só vou preencher o Grid na hora q for informado uma opçaõ de busca no BD pelo usuario q seria tipo uma data ou nome, q pressionando enter ai sim ele vai no BD e busca as informações e preenche o grid.
Naum tendo a necessidade de preencher o grid assim q o form for carregado
estes controles naum ficam mais lentos se tiver uns 40000 registros?
porq hora q chamu o form ele tera q carregar tudu isso.
ou naum seria assim ???
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

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

HTML DESLIGADO

     
 VOLTAR

  



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