
Macêdo
Membros-
Total de itens
303 -
Registro em
-
Última visita
Tudo que Macêdo postou
-
Selecionar duas tabelas no DataReport
pergunta respondeu ao Gabriel Cabral de Macêdo em Visual Basic
existe algum campo em comum entre as duas tabelas ? -
Kuroi, vou postar o codigo que da pra configurar o Mshflexgrid assim como o datagrid, caso alguém esteja passeando pelo forum procurando a mesma coisa: Private Sub preenche_hflex() If rs_2.RecordCount > 0 Then With HFlex .Clear .Cols = 9 'quantidade de colunas .SelectionMode = flexSelectionByRow 'seleciona toda a linha do Mshflex .ColWidth(0) = 400 'largura da coluna .ColWidth(1) = 600 .TextMatrix(0, 1) = "Cod" 'nome do cabeçalho da coluna .ColWidth(2) = 3800 .TextMatrix(0, 2) = "Cliente" .ColWidth(3) = 1000 .TextMatrix(0, 3) = "Nascimento" .ColWidth(4) = 1300 .TextMatrix(0, 4) = "CPF" .ColWidth(5) = 1200 .TextMatrix(0, 5) = "RG" .ColWidth(6) = 1200 .TextMatrix(0, 6) = "Telefone" .ColWidth(7) = 1200 .TextMatrix(0, 7) = "Celular" .ColWidth(8) = 5000 .TextMatrix(0, 8) = "Endereço" .Rows = rs_2.RecordCount + 1 rs_2.MoveFirst For i = 1 To rs_2.RecordCount 'for para preencher o mshflex com o RS .TextMatrix(i, 1) = IIf(IsNull(rs_2(0)), "", rs_2(0)) .TextMatrix(i, 2) = IIf(IsNull(rs_2(1)), "", rs_2(1)) .TextMatrix(i, 3) = IIf(IsNull(rs_2(2)), "", Format(rs_2(2), "dd/mm/yyyy")) 'formata a coluna do campo data .TextMatrix(i, 4) = IIf(IsNull(rs_2(3)), "", format(rs_2(3),"currency")) 'formata coluna valor monetario .TextMatrix(i, 5) = IIf(IsNull(rs_2(4)), "", rs_2(4)) .TextMatrix(i, 6) = IIf(IsNull(rs_2(5)), "", rs_2(5)) .TextMatrix(i, 7) = IIf(IsNull(rs_2(6)), "", rs_2(6)) .TextMatrix(i, 8) = IIf(IsNull(rs_2(7)), "", rs_2(7)) rs_2.MoveNext Next i End With Else HFlex.Clear End If End Sub
-
Kuroi pode me dizer como faço pra configurar o tipo da coluna, exemplo: No DataGrid fazia assim: DataGrid1.Columns.Item(1).NumberFormat = "dd/mm/yyyy" 'configura formato da data na coluna 2 DataGrid1.Columns.Item(1).Alignment = dbgCenter 'configura alinhamento na coluna 2 como central DataGrid1.Columns.Item(5).NumberFormat = "Currency" 'configura formato monetario na coluna 6 E no MsHflex ou Flexgrid como faço ?, passei a madrugada tentando descobrir
-
Realmente com o alias fica como desejado, isso porque o Field já vem com o nome esperado, porém imagino ter que colocar aliás em todos os campos todas as vezes que for fazer select's para mostrar num Grid, imagina quando for um daqueles com inúmeros campos e bem complicados cheios de SUM(), COUNT(),GROUP()ORDER()UNION()INNER()... tem select's que depois que faço com algum tempo que vou tentar ler o código para entender quase que não dá hehehehe, fica mais fácil fazer outro. Primeiro ponto para o DataGrid em relação a esta disputa de Grids, sem contar que cá pra nós é bem mais facil entender os comandos do DataGrid né não ?
-
Pessoal estou carregando um MsHflex do jeito que sempre fiz com o DatGrid, assim: Private Sub preenche_Hflex() With cmd .ActiveConnection = cnn .CommandType = adCmdText .CommandText = "select cod, nome, categoria, status from produto" Set rs = .Execute End With With rs Set HFlex.DataSource = rs HFlex.ColWidth(0) = 400 HFlex.ColWidth(1) = 600 HFlex.ColWidth(2) = 2800 HFlex.ColWidth(3) = 1500 HFlex.ColWidth(4) = 1500 HFlex.TextMatrix(0, 1) = "Cod" HFlex.TextMatrix(0, 2) = "Filme" HFlex.TextMatrix(0, 3) = "Categoría" HFlex.TextMatrix(0, 4) = "Status" HFlex.SelectionMode = flexSelectionByRow End With End Sub E uso o código abaixo para filtrar os dados no MsHflexGrid e também funciona perfeitamente como no DataGrid, só que o PROBLEMA é que quando o Filtro acontece, os cabeçalhos das colunas que eu pus os nomes conforme o Código que preenche o MsHflexGrid, mudam e ficam com os nomes dos campos das tabelas, problema este que não acontece com o DataGrid Private Sub Text_nome_Change() With rs If Text_nome <> "" Then .Filter = "nome like '" & Text_nome & "%'" .Sort = "nome" End If End With End Sub Como faço para que o nome do CABEÇALHO (colunas) não mude ? fique os que coloquei no Código que preenche o MsHflex ?
-
Qual componente ? DataGrid ? MsHFlexGrid ? FlexGrid ? DBGrid ? este erro ocorre quando não há compatibilidade com este tipo de instrução, ou seja, se for o DataGrid ou MsHFlexGrid aceita, os outros não.
-
Efetuar busca de cadastros no bd e jogar em um controle apropriado
pergunta respondeu ao ƒ Edu ƒ de Macêdo em Visual Basic
O problema é que no lugar do DataGrid você usou o DBGrid este código só funciona com DataGrid ou MsHflexGrid que são utilizados pela ADO o DBGrid é DAO -
SQL para DataReport - Verificar Vencimento
pergunta respondeu ao Gabriel Cabral de Macêdo em Visual Basic
SELECT * FROM FinanWin_ConP WHERE isnull(ConP_DataPgto) ORDER BY ConP_Venc -
Efetuar busca de cadastros no bd e jogar em um controle apropriado
pergunta respondeu ao ƒ Edu ƒ de Macêdo em Visual Basic
"Eu posso declarar esse command e esse outro rs no mesmo modulo que eu utilizei para as conexões do BD?" Com certeza Edu, pode declara-los no modulo e utiliza-los no Form "ou posso utilizar 1 recordset para as duas funções?" Qual a outra função que você se refere? lembrando que um recordset é uma consulta, ou seja, imagine como uma tabela pronta que você esta visualizando dados, caso essa outra função não tenha a ver com a visualização destes mesmos dados, então deve usar outro Recordset sim "Na tela de busca de alunos, caso o usuário escola o critério de busca por "Nome", e havendo vários alunos com o mesmo nome, o resultado deve ser exibido no Grid só que, o usuário precisará dar um click duplo no aluno desejado para exibir o cadastro por completo em outro form. O Grid tem essa função de click para exibir os dados em outro form? " Com certeza EDU! isso é o que eu mais faço quando uso o DataGrid Se já conseguio fazer os dados aparecerem no Datagrid me diz que a gente passa para a proxima etapa, beleza? -
Efetuar busca de cadastros no bd e jogar em um controle apropriado
pergunta respondeu ao ƒ Edu ƒ de Macêdo em Visual Basic
O DataGrid mesmo, eu mesmo gosto muito, todos meus programas uso DataGrid e não precisa de outro controle vinculado a ele não. faz assim: No general declarations, declare o command e o recordset: Dim cmd As New ADODB.Command Dim rs As New ADODB.Recordset Agora crie uma sub para preencher o Datagrid, depois chama ela no Load do Form pra ficar mais arrumado, exemplo: Private Sub preenche_grid() 'sub para preencher o grid With cmd .ActiveConnection = cnn 'nome da sua conexão .CommandType = adCmdText .CommandText = "select Nome, matricula, rg from tabela_alunos" 'seleciona os dados da tabela que quer ver no grid Set rs = .Execute End With With rs Set DataGrid1.DataSource = rs 'aqui já lança os dados no Datagrid End With End Sub Pronto! agora é só chamar esta sub no load do form assim: Private Sub Form_Load() preenche_grid End Sub -
Como faço para que um campo date/time aceite valores nulos ou brancos ? Obrigado desde já a todos.
-
Kuroi, já tentei um monte de formas assim: "credito = '" & IIf(Text_credito = "", Null, Text_credito) & "'," & _ assim "credito = '" & IIf(isnull(Text_credito),"", Text_credito) & "'," & _ colocando no access em regra de validação È NULO e Requerido = não
-
Como fazer para que o Access aceite gravar valor em branco nos campos DATA e MOEDA, utilizo a instrução INSERT INTO e sempre que deixo um campo DATA ou MOEDA em branco dá erro.
-
é só não colocar o codigo que preenche o grid no evento Form_Load, ponha em outro evento que você quiser
-
Então o filtro já ta funcionando OK né? Para selecionar ponha após o Filtro: DataGrid1.MarqueeStyle = dbgHighlightRowRaiseCell
-
Põe um select no recordsourse: Select * from geral where nome = usuario
-
Identificando o Click no Cancelar da Inputbox
uma questão postou Macêdo Tutoriais & Dicas - Visual Basic
Dim vCaixa As String 'declarando a variavel vCaixa = InputBox("Mensagem") 'variavel inputbox If StrPtr(vCaixa) = 0 Then ' identificando o cancelar MsgBox "Você cancelou !" -
Quando o .execute fica amarelo e da esta mensagem o erro esta em algum campo do update, reveja atentamente os campos, outra coisa, sempre que uso as instruções Insert Into, ou Update, sempre uso o sinal "=" e em sua instrução esta toda com o operador "Like" não sei se pode ser isto, mas verifique, não custa nada. Acho que aqui também deve ser mudado, já que é update deve haver o registro para ser alterado e em seu codigo está dizendo que se não encontrar é para efetuar o Update, mas como se pode efetuar uma alteração de algo que não existe ?, troque a linha: If rs.BOF And rs.EOF Then ' se não encontrou por: if Not(.BOF and .EOF) then ' se encontrou
-
Provider e Parâmetros de DataEnvironment
pergunta respondeu ao Gabriel Cabral de Macêdo em Visual Basic
você criou seu BD através do DataManager ? se criou pode fazer o mesmo que sempre faço e nunca deu erro, eu crio meu BD pelo DataManager que sempre cria em Access 97, e sempre uso o Jet 4.0. Quando instalo o programa em outro computador abro o BD pelo Access mesmo e vou em ferramentas/utilitarios e converto ele para 2000 ou 2002 e sempre dá certo. e olha que eu nem tenho o access em meu PC onde crio os programas. -
Deixa o MSDN pra lá, é só o arquivo de ajuda, aquelas janelinhas que tem no windows com as ajudinhas basicas sem falar que é em inglês, pega as apostilas e manda brasa na leitura.
-
Com certeza pra começar é o Access, quanto a apostilas também praticamente todas as apostilas que se encontra na NET são de aplicações VB com Access, dê uma olhada no site: www.Apostilando.com Tem otimas apostilas, eu mesmo comecei por lá. Atenciosamente; Macêdo
-
Se você quer que ocorra quado a text perder o foco será que não é apenas colocar o codigo no Lost_focus da Text, ou ainda você pode por este codigo que preenche as text's do outro form num botão e colocar a propriedade Default = True
-
Tranquilo Dudu, e eu vim ver o seu agora, hehehehe..... e como faltam quase 3:00pro reveillon, feliz ano novo pra você's CAMARADAS, que 2008 seja um ano com muita PAZ, SAUDE, DINHEIRO NO BANCO, por que no bolso é vendaval e muito VB.
-
gabriel, dá pra você colocar o código todo aqui ? todo o codigo que estiver neste form beleza ?
-
Coloque assim: No General declarations: Dim rs New As ADODB.Recordset Dim Conex As New ADODB.Connection Dim cmd As New ADODB.Command Private Sub Form_Load() StringDeConexao = "Provider=microsoft.jet.oledb.4.0;" & "Data Source=" & App.Path & "\FinanWin.mdb;" Conex.CursorLocation = adUseClient Conex.Open StringDeConexao With cmd .ActiveConnection = Conex .CommandType = adCmdText .CommandText = " Select Max(Cli_Cod) From FinanWin_Cli " Set rs = .Execute End With If Not IsNull(rs(Val("Cli_Cod"))) Then txtCli_Cod.Text = rs(Val("Cli_Cod")) + 1 Else txtCli_Cod.Text = 1 End If With cmd .ActiveConnection = Conex .CommandType = adCmdText .CommandText = " Select * From FinanWin_Cli " Set rs = .Execute End With End Sub Botão : Private Sub cmdMoveNext_Click() With rsmove .MoveNext If .EOF = True Then .MoveLast txtCli_Cod.Text = rsmove("Cli_Cod") txtCli_NomeFantasia.Text = rsmove("Cli_NomeFantasia") txtCli_RazaoSocial.Text = rsmove("Cli_RazaoSocial") txtCli_Endereco.Text = rsmove("Cli_Endereco") txtCli_Numero.Text = rsmove("Cli_Numero") txtCli_Bairro.Text = rsmove("Cli_Bairro") txtCli_Cidade.Text = rsmove("Cli_Cidade") txtCli_Estado.Text = rsmove("Cli_Estado") txtCli_CEP.Text = rsmove("Cli_CEP") txtCli_Email.Text = rsmove("Cli_Email") txtCli_DDD.Text = rsmove("Cli_DDD") txtCli_Telefone.Text = rsmove("Cli_Telefone") txtCli_Celular.Text = rsmove("Cli_Celular") txtCli_RG.Text = rsmove("Cli_RG") txtCli_CPF.Text = rsmove("Cli_CPF") txtCli_CNPJ.Text = rsmove("Cli_CNPJ") txtCli_IE.Text = rsmove("Cli_IE") End With End Sub Gabriel: 1 - veja no codigo que você estava declarando dois Recordset's, pode ser também, mas como você só estava usando no primeiro caso para retornar o maior registro e depois esse numero só seria chamado novamente no proximo Form_Load então podemos usar o mesmo recordset para retornar este numero e depois com outra instrução para o command usa-lo para retornar os dados da tabela. 2 - Declare sempre o Command no General Declarations assim você não precisa declarar em todos os eventos, por exemplo, declarando o cmd no general declarations você pode usa-lo no botão de gravar com a instrução Insert Into, pode usa-lo no botão excluir com a instrução delete, pode usa-lo em algum outro evento para fazer algum select, tudo isso sem precisar declará-lo em todos os eventos, beleza ? 3 - Os recordset's se você declara-los também no general, você alem de só declarar uma vez, ou só declarar mais de um quando for realmente necessário, fica mais facil de você ver quantos e quais recordset's você declarou para poder fechalos de uma só vez no evento Form_Unload assim não corre o risco de você ter declarado algum recordset em algum evento e não fecha-lo ao sair da aplicação, isto pode ocorrer justamente quando você tiver com uma aplicação grande e passar mais de uma hora olhando todo o codigo para ver onde declarou ou não algum recordset Beleza ?