Visual Basic 6 - Utilização da Grade Vinculada aos dados: DbGrid
A Grade Vinculada aos dados - DbGrid oferece um meio para visualizar vários registros ao mesmo tempo. Assemelha-se ao commando Browse usado no Clipper/FoxPro e ao modo tabela do Access. O seu primo pobre no VB seria o controle Grid, e, apenas para dimensionar a dife- rença ,o Grid está limitado a 16352 linhas e 5450 colunas no Dbgrid a quantidade de linhas esta condicionada aos recursos do sistema e a 1700 colunas, sem contar que o desempenho do Dbgrid e bem superior ao do Grid. Enquanto o Grid precisa ser configurado quase que totalmente via código, para usar o Dbgrid basta arrastar o ícone do Controle para o seu formulário e definir a propriedade DataSource para identificar o controle de dados que contém os dados que você quer exibir, e pronto, a grade exibe todos os campos dos registros do recordset. Nota:Para preservar recursos do sistema use uma instrução SQL na propriedade Recordsource do controle de dados que o DbGrid irá utilizar. Conteúdo
Vejamos passo a passo como utilizar o Dbgrid com o controle de dados vinculados - Data Control.
fig1. |
De início selecione
o objeto controle de dados na Toolbox do Visual Basic e
acrescente-o ao seu formulário.(Fig.1) |
Defina a seguir as
propriedades:
|
fig.4 |
A seguir selecione o
ícone do DBGrid na ToolBox e arreste-o até o seu
form dimensionando como na fig.4. ao lado. |
fig.5 |
Finalmente defina a propriedade DataSource vinculado-a ao controle de dados configurado anteriormente.fig.5. |
Para permitir a edição, inclusão e exclusão de registros na grade você deve definir como True as propriedades AllowAddNew , AllowUpdate e AllowDelete. Isto pode ser feito através da folha de propriedades do DBgrid (fig.6), onde podemos tambem especificar opções avançadas de tratamento do Recordset sem uma linha de código sequer.
fig.6 |
Conteúdo
Chega de conceitos, vamos colocar em prática tudo isto em um projeto simples, um pequeno controle financeiro que você depois pode aperfeiçoar. Então mão a obra:
-objetivo: Controlar a movimentação de contas bancárias. -Constituição:
1-Vamos iniciar com a criação do menu, simples na verdade, mas que serve para os nossos propósitos. Fica a seu critério incrementá-lo. Vamos lá. -Inicie o VB e acione a opção Insert->MDI Form para inserir um formulário MDI que conterá os demais formulários do projeto. -O nosso formulário deverá ter o aspecto mostrado na figura 1.0 abaixo:
fig 1.0 |
Neste formulário temos os seguintes controles: -1 controle SSPanel -5 botões SSCommand Além disso temos um menu feito no Editor de Menus do Visual Basic. |
-Insira os controles no formulário e configure suas propriedades como indicado a seguir na tabela 1.0: Tabela 1.0 - Objetos e propriedades do form frmmenu. ---------------------------------------------------------------------------- Objeto Propriedade Configuração ---------------------------------------------------------------------------- MDIForm Name frmmenu Picture fig 1.0 ---------------------------------------------------------------------------- (*)SSCommand Name SSCommand1(0) Picture fig 1.0 - Clientes,Contas,Transações BevelWidth 1 --------------------------------------------------------------------------- SSCommand Name SSCommand1(1) Picture fig 1.0 - Gerenciar o movimento BevelWidth 1 --------------------------------------------------------------------------- SSCommand Name SSCommand1(2) Picture fig 1.0 - Relatórios do Sistema BevelWidth 1 --------------------------------------------------------------------------- SSCommand Name SSCommand1(3) Picture fig 1.0 - Ajuda do Sistema BevelWidth 1 --------------------------------------------------------------------------- SSCommand Name SSCommand1(4) Picture fig 1.0 - Sair do Sistema BevelWidth 1 --------------------------------------------------------------------------- SSPanel Caption "" Name painel Align 1-Align Top BevelWidth 1 BevelInner 0-None BevelOuter 2-Raised --------------------------------------------------------------------------- (*)Constituem um "control array" - Controles com o mesmo nome e do mesmo tipo, dotados de um índice identificador. (**)Para usar o Editor de Menus do VB pressione CTRL+E e informe o nome que deseja para o menu na propriedade Caption e na propriedade Name informe o nome de referência do menu. Para criar subitens clique na seta para direita repita o passo anterior e a seguir no botão Next para ir para o próximo subitem. Obs:Para sublinhar a primeira letra do nome do menu insira o caractere & antes da letra. Ex: &Cadastros -> exibe Cadastros. 2-Agora basta atribuir o código a cada botão de comando , no nosso caso so usaremos o botão que gerencia o movimento e o botão para sair do sistema. -No botão que gerencia o movimento - Menu Movimento - iremos carregar o formulário frmtrans. -No botão para sair do Sistema inserimos o código que encerra a aplicação.Veja abaixo:
Private Sub SSCommand1_Click(Index As Integer) Select Case Index Case 0 'botão 1 - Cadastramentos (por sua conta) Case 1 'Gerencia movimento frmtransa.Show Case 2 'Relatórios Case 3 'Ajuda Case 4 'Sair da aplicação end End Select End Sub |
Vamos agora definir o banco de dados e as tabelas utilizadas pelo sistema. A princípio o sistema usará as seguintes tabelas:
- BANCO.MDB - será o banco de dados do nosso sistema. - tblcli - Tabela de cadastro dos clientes. - tblcontas - Tabela de cadastro das contas a controlar. - tblcodtrans - Tabela de cadastro dos códigos das transações realizadas. - tbltrans - Tabela onde será registrada toda a transação realizada. Vejamos agora a definição dos campos de cada tabela e a criação do banco de dados. 1-Crie o seu banco de dados utilizando o Data Manager ou use o Microsoft Access e grave-o com o nome de BANCO.MDB. 2-Crie uma tabela com o nome de tblcli com a seguinte estrutura: ---------------------------------------------------- Nome do Campo Tipo de Dados Tamanho ---------------------------------------------------- COD_CLI LONG INTEGER(*) DES_CLI CARACTER 30 ---------------------------------------------------- (*)Como cada cliente deve ter um codigo único garantindo assim a exata identificação do mesmo, defina o tipo de dados para o campo código como LONG INTEGER , e ative o atributo Counter e a opção Required. 3-Crie uma tabela com o nome de tblcontas com a seguinte estrutura: ---------------------------------------------------- Nome do Campo Tipo de Dados Tamanho ---------------------------------------------------- COD_CLI LONG COD_CONTA LONG 30 DES_CONTA TEXT 30 ---------------------------------------------------- -Defina um índice para os campos cod_cli e cod_conta com o nome de cliconta e com as seguintes propriedades: Unique, Primary index , Required. 4-Crie uma tabela com o nome de tblcodtrans com a seguinte estrutura: ---------------------------------------------------- Nome do Campo Tipo de Dados Tamanho ---------------------------------------------------- COD_TRAN LONG DES_TRAN TEXT 30 ---------------------------------------------------- -Defina um índice para o campo COD_TRANS e indique-o como chave primária 5-Finalmente , Crie uma tabela com o nome de tblcodtrans com a estrutura: ---------------------------------------------------- Nome do Campo Tipo de Dados Tamanho ---------------------------------------------------- COD_LANCA LONG INTEGER(*) COD_TRANS LONG COD_CLI LONG COD_CONTA LONG DATA_TRANS DATE/TIME LANCAMENTO CURRENCY SALDO CURRENCY NU_DCTO TEXT 15 OBS_TRANS TEXT 30 ---------------------------------------------------- (*)Como cada lancamento deve ter um codigo único garantindo assim sua exata identificação , defina o tipo de dados para o campo cod_lanca LONG INTEGER , e ative o atributo Counter e a opção Required. -Defina os seguintes índices para esta tabela: ---------------------------------- nome do indice composição ---------------------------------- - PrimaryKey cod_lanca índice - chave primária (já definido) ---------------------------------- - datatrans data_trans índice - datatrans por data de transação ---------------------------------- Conteúdo
Vamos agora desenhar a interface com o
usuário. Nesta fase iremos construir três formulários que
comporão o nosso projeto:
- frmtrans - Formulário que gerencia a movimentação das contas
- frmexcl - Formulário para exclusão de lançamentos
- frmincl - Formulário para incluir lançamentos
- frmalt - Formulário para efetuar alterações nos lancamentos efetuados
1-O formulário frmtrans é o formulário principal de nossa aplicação , pois
através dele iremos gerenciar a movimentação das contas. Ele terá o aspecto da
fig1.0 abaixo:
fig 1.0 |
Para montar o formulário acima descrito observe os seguintes passos: 1-Inicie um novo projeto no Visual Basic.Grave o formulário Form1 como frmtrans. 2-Adicione ao Form1 os objetos e configure as propriedades conforme a tabela 1.0 abaixo : Tabela 1.0 - Objetos e propriedades do formulário frmtrans ---------------------------------------------------------------------------- Objeto Propriedade Configuração ---------------------------------------------------------------------------- Form Name frmtrans Caption "Movimentação Contas Correntes" MDIChild True ---------------------------------------------------------------------------- Frame Name Frame1 Caption Cliente / Conta Corrente ---------------------------------------------------------------------------- Frame Name Frame2 Caption Período / Tipo de Transação ---------------------------------------------------------------------------- ComboBox Name CboCliente style 0-Dropdown Combo ---------------------------------------------------------------------------- ComboBox Name CboConta style 0-Dropdown Combo ---------------------------------------------------------------------------- Label Name Label6 Caption "" ---------------------------------------------------------------------------- MaskedBox Name maskini Mask 99/99/99 PrompInclude False PromptChar " " ---------------------------------------------------------------------------- MaskedBox Name maskfim Mask 99/99/99 PrompInclude False PromptChar " " ---------------------------------------------------------------------------- ComboBox Name CboTipo style 0-Dropdown Combo ---------------------------------------------------------------------------- (*)CommandButton Name command1(0) Caption "&Incluir" --------------------------------------------------------------------------- CommandButton Name command1(1) Caption "&Excluir" --------------------------------------------------------------------------- CommandButton Name command1(2) Caption "&Alterar" --------------------------------------------------------------------------- CommandButton Name command1(3) Caption "&Sair" --------------------------------------------------------------------------- CommandButton Name command2 Caption "&Processa" --------------------------------------------------------------------------- SSPanel Caption "" Name SSPanel1 --------------------------------------------------------------------------- Data Name data1 --------------------------------------------------------------------------- DbGrid Name DbGrid1 Column1 Data Column2 Documento Column3 Transacao Column4 Historico Column5 Valor Column6 Saldo --------------------------------------------------------------------------- (**)Label Caption ** AutoSize ** --------------------------------------------------------------------------- (*)Constituem um "control array" - Controles com o mesmo nome e do mesmo tipo, dotados de um índice identificador. (**)Todos os controles Label possuem a propriedade AutoSize=True e Caption sendo igual ao nome do respectivos controle descrito na fig 1.0. 2-O formulário frmincl é o formulário que será usado para incluir lançamentos. Tem o seguinte aspecto mostrado na fig 2.0 abaixo:
fig 2.0 |
Para montar o formulário acima descrito observe os seguintes passos: 1-Inicie um novo projeto no Visual Basic.Grave o formulário Form1 como frmincl. 2-Adicione ao Form1 os objetos e configure as propriedades conforme a tabela 1.0 abaixo : Tabela 1.0 - Objetos e propriedades do formulário frmincl ---------------------------------------------------------------------------- Objeto Propriedade Configuração ---------------------------------------------------------------------------- Form Name frmincl Caption "Lançamentos-Inclusão Debito/Crédito MDIChild True ---------------------------------------------------------------------------- Frame Name Frame1 Caption Lançamento ---------------------------------------------------------------------------- OptionButton Name Option1 Caption Débito Value True ---------------------------------------------------------------------------- OptionButton Name Option2 Caption Crédito Value False ---------------------------------------------------------------------------- Frame Name Frame2 Caption Movimentação ---------------------------------------------------------------------------- MaskedBox Name maskdata Mask 99/99/99 PrompInclude False PromptChar " " ---------------------------------------------------------------------------- MaskedBox Name maskvalor format $#,##0.00;($#,##0.00) Mask "" PrompInclude False PromptChar " " ---------------------------------------------------------------------------- ComboBox Name CboTipo style 0-Dropdown Combo ---------------------------------------------------------------------------- TextBox Name txtnudcto ---------------------------------------------------------------------------- TextBox Name txtdescr ---------------------------------------------------------------------------- SSPanel Caption "" Name SSPanel1 --------------------------------------------------------------------------- (*)CommandButton Name command1(0) Caption "&Grava" --------------------------------------------------------------------------- CommandButton Name command1(1) Caption "&Cancela" --------------------------------------------------------------------------- CommandButton Name command1(2) Caption "&Sair" --------------------------------------------------------------------------- (*)Constituem um "control array" - Controles com o mesmo nome e do mesmo tipo, dotados de um índice identificador. (**)Todos os controles Label possuem a propriedade AutoSize=True e Caption sendo igual ao nome do respectivos controle descrito na fig 2.0. 3-O formulário frmexcl é o formulário que será usado para excluir lançamentos. Tem o seguinte aspecto mostrado na fig 3.0 abaixo:
fig 3.0 |
Para montar o formulário acima descrito observe os seguintes passos: 1-Inicie um novo projeto no Visual Basic.Grave o formulário Form1 como frmexcl. 2-Adicione ao Form1 os objetos e configure as propriedades conforme a tabela 1.0 abaixo : Tabela 1.0 - Objetos e propriedades do formulário frmexcl ---------------------------------------------------------------------------- Objeto Propriedade Configuração ---------------------------------------------------------------------------- Form Name frmexcl Caption "Exclusão de Dados" MDIChild True ---------------------------------------------------------------------------- Frame Name Frame1 Caption Excluir Dados ---------------------------------------------------------------------------- OptionButton Name Option1 Caption A partir de Value True ---------------------------------------------------------------------------- OptionButton Name Option2 Caption Antes de Value False ---------------------------------------------------------------------------- OptionButton Name Option2 Caption No Período de Value False ---------------------------------------------------------------------------- TextBox Name text2 ---------------------------------------------------------------------------- TextBox Name txtdcto ---------------------------------------------------------------------------- TextBox Name text1 Visible false ---------------------------------------------------------------------------- CommandButton Name command2 Caption "OK" --------------------------------------------------------------------------- CommandButton Name command1 Caption "&Cancela" --------------------------------------------------------------------------- Conteúdo
-Código do formulário de menu:frmmenu Botões de Comando do Menu. Private Sub SSCommand1_Click(Index As Integer) select case index case 0 case 1 'frmtransa frmtransa.Show case 2 case 3 case 4 'sair end end select End Sub -Código do formulário das transações:frmtransa -Caixa de combinação cliente Private Sub cbocliente_Click() If cbocliente.Text < > "" Then Dim sql_tmp As String sql_tmp = "SELECT * FROM tblcontas WHERE tblcontas.cod_cli=" & cbocliente.ItemData(cbocliente.ListIndex) enche_combo cboconta, sql_tmp, "cod_conta", "cod_cli" End If End Sub -caixa de combinação conta Private Sub cboconta_Click() If cboconta.Text < > "" Then Dim arqtemp As Recordset Set arqtemp = db.OpenRecordset("tblcontas", dbOpenTable) arqtemp.Index = "codconta" arqtemp.Seek "=", Val(cboconta.Text) Label6.Caption = arqtemp("desc_conta") arqtemp.Close Maskini.SetFocus End If End Sub -Código dos botões Incluir, Excluir, Alterar e Sair Private Sub Command1_Click(Index As Integer) Dim msg As String Set tabela = db.OpenRecordset("tbltrans", dbOpenTable) tabela.Index = "cod_conta" Select Case Index Case 0 'incluir alterareg = False frmtrans_i.Show 1 Case 1 'excluir frmexcl.Show 1 data2.Refresh Case 2 'alterar if dbgrid1.columns(0) < > "" then tabela.Seek "=", DBGrid1.Columns(0) else msgbox "Selecione um lancamento a alterar ! " exit sub endif alterareg = True frmtrans_i.Show 1 Case 3 Unload Me Exit Sub End Select atualiza_grid (sql) Data2.Refresh End Sub -Código do botão Processar Private Sub Command2_Click() Dim msg As String Dim x As Integer '------checa selecao de cliente/conta-- If cbocliente.ListIndex = -1 Then msg = "Selecione um cliente !" MsgBox msg, vbExclamation cbocliente.SetFocus Exit Sub End If If cboconta.ListIndex = -1 Then msg = "Selecione uma conta !" MsgBox msg, vbExclamation cboconta.SetFocus Exit Sub End If '-- atribui cliente/conta as variaveis publicas Cliente = cbocliente.ItemData(cbocliente.ListIndex) conta = cboconta.Text '--habilita botões de comandos-- For x = 0 To 2 Command1(x).Enabled = True Next '-- estabelece consulta SQL ------ sql = "SELECT data_trans, cod_trans, lancamento, nu_dcto, saldo, obs_trans FROM tbltrans" sql = sql & " WHERE cod_cli=" & cbocliente.ItemData(cbocliente.ListIndex) sql = sql & " AND cod_conta=" & cboconta.Text '---------define tipo da transacao para consulta-- If cbotipo.ListIndex < > -1 Then sql = sql & " AND cod_trans=" & cbotipo.ItemData(cbotipo.ListIndex) End If '---verifica data inicial/final e define período----- If Maskini < > " / / " And maskfim < > " / / " Then If Not IsDate(Maskini) Then msg = "Data inicial invalida" Maskini.SetFocus MsgBox msg, vbExclamation Exit Sub ElseIf Not IsDate(maskfim) Then msg = "Data final inválida " maskfim.SetFocus MsgBox msg, vbExclamation Exit Sub End If sql = sql & " AND data_trans >= " & "#" & Format((Maskini), "mm/dd/yy") & "#" sql = sql & " AND data_trans <= " & "#" & Format((maskfim), "mm/dd/yy") & "#"
End If
'-----atualiaza Recordsource-------
sql="sql" & " ORDER BY data_trans"
Data2.RecordSource="sql"
atualiza_grid (sql)
Data2.Refresh
End Sub
-Código de carga do formulário Private Sub Form_Load() Dim x As Integer '-------define tamanho do form---- Me.Width = 8295 Me.Height = 5595 '-- desabilita botões de comando For x = 0 To 2 Command1(x).Enabled = False Next '---- abre tabela / e define índice ativo--- 'Set tabela = db.OpenRecordset("tbltrans", dbOpenTable) 'tabela.Index = "clicndtr" '----configura data control--- Data2.DatabaseName = App.Path & "\joias.mdb" Data2.RecordSource = "SELECT * FROM tbltrans WHERE cod_trans = Null" '---------formata grid-------------------- DBGrid1.Columns(0).Width = 900 DBGrid1.Columns(1).Width = 950 DBGrid1.Columns(2).Width = 925 DBGrid1.Columns(3).Width = 2200 DBGrid1.Columns(4).Width = 1300 DBGrid1.Columns(5).Width = 1300 dbgrid1.columns(6).width = 1300 '----------atualiza o grid------------------- Data2.Refresh '-------atualiza combobox cliente ------------------ enche_combo cbocliente, "tblcli", "des_cli", "cod_cli" enche_combo cbotipo, "tblcodtrans", "des_tran", "cod_tran" '---------------------------------------------- End Sub -Código da função que atualiza o Grid Public Sub atualiza_grid(sql As String) Dim credito, debito As Currency Dim saldo_atu As Currency Dim arqtemp As Recordset saldo_atu = 0 '--------------------------------------------- Set arqtemp = db.OpenRecordset(sql, dbOpenDynaset) '--------------------------------------------- If arqtemp.EOF Then MsgBox "Não há dados no arquivo !", vbExclamation arqtemp.Close Exit Sub End If arqtemp.MoveFirst Do credito = 0 debito = 0 If Not IsNull(arqtemp![lancamento]) Then If arqtemp![lancamento] > 0 Then credito = arqtemp![lancamento] Else debito = arqtemp![lancamento] End If Else credito = 0 debito = 0 End If saldo_atu = credito + debito + saldo_atu arqtemp.Edit arqtemp![saldo] = saldo_atu arqtemp.Update arqtemp.MoveNext Loop While Not arqtemp.EOF arqtemp.Close End Sub Código do formulário para incluir/alterar dados: Frmincl Código dos botões Gravar, Cancelar e Sair Private Sub Command1_Click(Index As Integer) Select Case Index Case 0 'gravar grava_recs tabela.Update If alterareg Then Unload Me Exit Sub End If tabela.AddNew maskdata.SetFocus Case 1 'cancelar MsgBox "Atenção , as informações não foram gravadas ! " If alterareg Then Unload Me Exit Sub End If clear_controls maskdata.SetFocus Case 2 'sair Unload Me End Select End Sub Código de rotina de gravação Código da rotina que limpa os controles Public Sub clear_controls() maskdata = " / / " maskvalor = "" cbotipo.ListIndex = -1 txtnudcto = "" txtdescr = "" End Sub Código da rotina que foca a data Private Sub Form_Activate() maskdata.SetFocus End Sub Código da carga do formulário Private Sub Form_Load() '------carrega combobox de tipo de transacao ----- enche_combo cbotipo, "tblcodtrans", "des_tran", "cod_tran" 'Set tabela = db.OpenRecordset(tbltrans, dbOpenTable) If alterareg = True Then load_recs Else clear_controls End If End Sub Código da carga do formulário load_recs Public Sub load_rec() maskdata = Format$(tabela("data_trans"), "dd/mm/yy") If tabela("lancamento") <0 Then
Option1.Value="True"
maskvalor="Format(-1" * tabela("lancamento"), "###,###,##0.00")
Else Option2.Value="True"
maskvalor="Format$(tabela("lancamento")," "###,###,##0.00")
End If cbotipo.Text="tabela("cod_trans")"
txtnudcto="tabela("nu_dcto")"
txtdescr="tabela("obs_trans")"
End Sub
Código do formulário para excluir dados: Frmexcl Código do botão Cancelar Private Sub Command1_Click() Unload Me End Sub Código do botão OK Private Sub Command2_Click() Dim sqlexcl As String If Not IsDate(Text2.Text) Then MsgBox "Falta informar da data inicial ", vbCritical Text2.SetFocus Exit Sub End If sqlexcl = "DELETE FROM tbltrans WHERE [cod_cli]=" & cliente sqlexcl = sqlexcl & " AND tbltrans![cod_conta]=" & conta If txtdcto < > Empty Then sqlexcl = sqlexcl & " AND tbltrans![nu_dcto]=" & Val(txtdcto.Text) End If If Option1.Value = True Then sqlexcl = sqlexcl & " AND tbltrans![data_trans] >= " & "#" & CDate((Text2.Text)) & "#" End If If Option2.Value = True Then sqlexcl = sqlexcl & " AND tbltrans![data_trans] <= " & "#" & CDate((Text2.Text)) & "#"
End If
If Option3.Value="True" Then
If Not IsDate(Text1.Text) Then
MsgBox "Data final incorreta !", vbCritical
Text1.SetFocus
Exit Sub
End If
sqlexcl="sqlexcl" & " AND tbltrans![data_trans] BETWEEN " & "#" & CDate(Text2.Text) & "#" & " AND " & "#" & CDate(Text1.Text) & "#"
End If
Beep
If MsgBox("Atenção os registros serão eliminados dos arquivos, Confirma ? ", vbQuestion + vbYesNo + vbDefaultButton2)="vbYes" Then
db.Execute sqlexcl
End If
Unload Me
End Sub
Código de Carga do formulário Private Sub Form_Load() 'centraliza formulário (no VB 5.0 usar a propriedade StartupPosition) Left = (Screen.Width - Width) / 2 Top = (Screen.Height - Height) / 2 Label2.Visible = False Text1.Visible = False End Sub Código do botão de opção Antes de Private Sub Option1_Click() If Option1.Value = True Then Label2.Visible = False Text1.Visible = False End If Text2.SetFocus End Sub Código do botão de opção A Partir de Private Sub Option2_Click() If Option2.Value = True Then Label2.Visible = False Text1.Visible = False End If Text2.SetFocus End Sub Código do botão de opção No período de Private Sub Option3_Click() If Option3.Value = True Then Label2.Visible = True Text1.Visible = True End If Text2.SetFocus End Sub Código do modulo financa.bas Código do seção general declarations Option Explicit Public area As Workspace Public db As Database Public tabela As Recordset Public consulta As QueryDef Public alterareg As Boolean Public sql As String Public cliente As Long Public conta As Long Código de Sub Main Sub main() 'define area ativa e abre arquivo de dados Set area = DBEngine.Workspaces(0) Set db = area.OpenDatabase(App.Path & "\banco.mdb") 'mostra formulário de menu frmmenu.Show End Sub Código da função que preenche as combobox Public Sub enche_combo(combo As Control, data As String, campo As String, indice As String) '-- cria variável recordset temporária Dim arqtemp As Recordset '-----limpa combo combo.Clear '-----abre tabela como Snapshot Set arqtemp = db.OpenRecordset(data, dbOpenSnapshot) '--inicia loop através da tabela--- Do Until arqtemp.EOF combo.AddItem arqtemp(campo) combo.ItemData(combo.NewIndex) = arqtemp(indice) arqtemp.MoveNext Loop '---fecha recordset e não seleciona nada na combo arqtemp.Close combo.ListIndex = -1 End Sub
Veja abaixo a tela do formulário transações em tempo em execução:
Conteúdo
1-Tornando uma coluna invisível DbGrid1.columns(i).visible= False
Conteúdo
Veja os
Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique
e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências: