Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gabrieldb

[Resolvido] Mudar o nome das colunas do DataGrid

Recommended Posts

Tenho forms com DataGrid os dados que aparecem neles vem direto do BD e aparece os nomes das colunas do BD como faço pra aparecer o nome que eu colocar em cada campo que vier do banco ao invés dos nomes da colunas do BD ?

 

Esse é o código que eu uso pra trazer do banco e preencher o DataGrid.

 

Private Sub preenche_grid()
With cmd
    .ActiveConnection = Conex
    .CommandType = adCmdText
    .CommandText = "select nome As nome from clientes"
End With
   With rs
    Set DataGrid1.DataSource = rs
   End With
   
End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colocando nome nas colunas pelo SQL não funcionou?

 

 

select nome as NomeCliente from clientes

 

 

Deve aparecer NomeCliente no grid.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colocando nome nas colunas pelo SQL não funcionou?

 

 

select nome as NomeCliente from clientes

 

 

Deve aparecer NomeCliente no grid.

 

Não funcionou aparece do mesmo jeito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Tarde Gabriel

não sei se entendi a tua pergunta mas no meu grid que trago de uma tabela eu faço assim

 

Private Sub Preenche_GrdPecas()
    'chama a tabela produtos e joga os dados no mshflexgrid
    rsProdutos.Open "Select * From Produtos", cnnCetecInfServiços, 1, 2
        If rsOficina1.RecordCount > 0 Then
            With GrdPecas
                .Clear
                .Cols = 4
                .SelectionMode = flexSelectionByRow
                .ColWidth(0) = 600
                .TextMatrix(0, 0) = "[u]Código[/u]"
                .ColWidth(1) = 6000
                .TextMatrix(0, 1) = "[u]Descrição[/u]"
                .ColWidth(2) = 1100
                .TextMatrix(0, 2) = "[u]PrecoCompra[/u]"
                .ColWidth(3) = 1100
                .TextMatrix(0, 3) = "[u]PrecoVenda[/u]"
                .Rows = rsOficina1.RecordCount + 1
            rsOficina1.MoveFirst
        For i = 1 To rsOficina1.RecordCount
        .TextMatrix(i, 0) = IIf(IsNull(rsProdutos!Referencia), "", rsProdutos!Referencia)
        .TextMatrix(i, 1) = IIf(IsNull(rsProdutos!Descricao), "", rsProdutos!Descricao)
        .TextMatrix(i, 2) = IIf(IsNull(rsProdutos!PrecoCompra), "", Format(rsProdutos!PrecoCompra, "0.00"))
        .TextMatrix(i, 3) = IIf(IsNull(rsProdutos!PrecoVenda), "", Format(rsProdutos!PrecoVenda, "0.00"))
        rsProdutos.MoveNext
        Next i
    End With
    Else
        GrdPecas.Clear
        vinfo = MsgBox("Não houve Lançamentos no período informado", vbInformation + vbOKOnly, "Histórico de Lançamentos")
    End If
    rsProdutos.Close
End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Nereu mais não deu certo não...você usa o msflexgrid eu to usando DataGrid.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta este código e chame-o após a consulta ao banco de dados.

 

 

Sub preencher() 
Dim i As Integer
On Error Resume Next
Set grid.DataSource = rsMySQL
With grid 'with significa com e substitui variavel a frente dele
    .Columns(0).Caption = "DD Número"
    .Columns(0).Alignment = dbgCenter
    .Columns(0).Width = 1350
    .Columns(1).Caption = "    Data"
    .Columns(1).Alignment = dbgCenter
    .Columns(1).Width = 1100
    .Columns(2).Caption = "Cia"
    .Columns(2).Alignment = dbgCenter
    .Columns(2).Width = 500
    'numero refere-se as posições dos campos
End With

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta este código e chame-o após a consulta ao banco de dados.

 

 

Sub preencher()

Dim i As Integer

On Error Resume Next

Set grid.DataSource = rsMySQL

With grid 'with significa com e substitui variavel a frente dele

.Columns(0).Caption = "DD Número"

.Columns(0).Alignment = dbgCenter

.Columns(0).Width = 1350

.Columns(1).Caption = " Data"

.Columns(1).Alignment = dbgCenter

.Columns(1).Width = 1100

.Columns(2).Caption = "Cia"

.Columns(2).Alignment = dbgCenter

.Columns(2).Width = 500

'numero refere-se as posições dos campos

End With

 

Na mosca rorlando mais ficou uma dúvida os registros estão aparecendo nas linhas com espaço tentei usar trim mais não traz os registros como faço pra resolver isso ?

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi qual é a sua dúvida!

 

Aparece um registro em uma linha e na outra fica em branco, assim sucessivamente?

 

Ou surgem espaços entre os campos dos registros?

 

Mostre seu código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi qual é a sua dúvida!

 

Aparece um registro em uma linha e na outra fica em branco, assim sucessivamente?

 

Ou surgem espaços entre os campos dos registros?

 

Mostre seu código.

 

Então o código tá normal o problema é o espaço no registro, vou dar um exemplo pra você entender melhor.

Eu busco os dados e no DataGrid aparece asssim

 

Nome | Endereco

___Joao___|

Fica um espaço ali onde eu coloquei o ___ entendeu o nome joão não aparece na linha só se eu clica dentro dela ai eu visualizo caso contrário ele fica "escondido".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rorlando dá uma olhada na imagem que você vai entender o que quero.

 

Imagem Postada

 

Na segunda olha onde o cursor fica,tipo ele traz trás o espaço do campo do BD.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta um RTRIM no sql.

 

Eu colocaria no selct ?

 

select * from clientes

eu uso isso pra mostrar os dados.

 

Meu código todo tá assim

 

Dim i As Integer
On Error Resume Next
Set DataGrid1.DataSource = rs
With DataGrid1 
.Columns(0).Caption = "Código"
.Columns(0).Alignment = dbgCenter
'.Columns(0).Width = 1000
.Columns(1).Caption = "Empresa"
.Columns(1).Alignment = dbgCenter
'.Columns(1).Width = 1000
.Columns(2).Caption = "Tipo de Estab."
.Columns(2).Alignment = dbgCenter
'.Columns(2).Width = 1000
.Columns(3).Caption = "Razão Social"
.Columns(3).Alignment = dbgCenter
'.Columns(3).Width = 1200
.Columns(4).Caption = "Endereço"
.Columns(4).Alignment = dbgCenter
'.Columns(4).Width = 1200
.Columns(5).Caption = "Bairro"
.Columns(5).Alignment = dbgCenter
'.Columns(5).Width = 1200
.Columns(6).Caption = "Cidade"
.Columns(6).Alignment = dbgCenter
'.Columns(6).Width = 1200

End With

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso, no select.

 

select rtrim(nome) from clientes

 

Seu campo no banco é char, não é?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Normalmente consta o tamanho para cada coluna (.Columns(0).Width = 1500), com valor variando de acordo com o conteúdo do campo.

 

Antes de gravar os dados na tabela eu elimino todos os espaços vazios que possam existem antes ou após os dados [trim(variável ou campo)], se já salvou altere os dados do campo com UPDATE.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso, no select.

 

select rtrim(nome) from clientes

 

Seu campo no banco é char, não é?

 

Isso mesmo é char, mais nesse select com o rtrim, eu teria que colocar todos os campos da tabela ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloquei aqui deu certo mais agora não abre nas texts os registros e dá esse erro.

 

Run-time error'3625':

O item não pode ser encontrado na coleção correspondente ao nome ou ao ordinal solicitado.

 

Meu código todo ficou assim.

 

Private Sub cmdEditar_Click()
Desblokeio
Call conexao
Conex.CursorLocation = adUseClient
If rs.State = 1 Then rs.Close
rs.Open "select rtrim(codigo),rtrim(nome),rtrim(estab),rtrim(razao),rtrim(endereco),rtrim(bairro),rtrim(cidade),rtrim(estado),rtrim(cep),rtrim(cnpj),rtrim(inscricao),rtrim(ccm),rtrim(fone1),rtrim(fone2),rtrim(fone3),rtrim(fax),rtrim(resp),rtrim(cargo),rtrim(email),rtrim(site) from clientes", Conex, adOpenDynamic, adLockOptimistic
  
    If rs.BOF Then
     Blokeio
     Else
    Desblokeio
   End If
  If rs.EOF Then
     MsgBox "Nenhum registro foi encontrado!", vbExclamation, "De Luca Serviços"
   Else
txtCodigo.Text = rs("codigo")
txtFantasia.Text = Trim(rs("nome"))
txtEstab.Text = Trim(rs("estab"))
txtRazao.Text = Trim(rs("razao"))
txtEndereco.Text = Trim(rs("endereco"))
txtBairro.Text = Trim(rs("bairro"))
txtCidade.Text = Trim(rs("cidade"))
txtEstado.Text = Trim(rs("estado"))
txtCep.Text = Trim(rs("cep"))
txtCnpj.Text = Trim(rs("cnpj"))
txtInscricao.Text = Trim(rs("inscricao"))
txtCcm.Text = Trim(rs("ccm"))
txtFone1.Text = Trim(rs("fone1"))
txtFone2.Text = Trim(rs("fone2"))
txtFone3.Text = Trim(rs("fone3"))
txtFax.Text = Trim(rs("fax"))
txtResp.Text = Trim(rs("resp"))
txtCargo.Text = Trim(rs("cargo"))
txtEmail.Text = Trim(rs("email"))
txtSite.Text = Trim(rs("site"))
preenche_grid
  End If
End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Renomeie as colunas no sql.

 

select rtrim(nome) as nome, rtrim... 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Renomeie as colunas no sql.

 

select rtrim(nome) as nome, rtrim... 

 

Certinho Scorpio...valeu cara depois passa lá no boteco pra tomar uma rsrs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.