Ir para conteúdo
Fórum Script Brasil

Danleonhart

Membros
  • Total de itens

    574
  • Registro em

  • Última visita

Posts postados por Danleonhart

  1. Obrigado danleonhart, realmente funcionou direitinho...Então se eu tiver mais de 2 text.box no form, é só adicionar comandos Case no código?
    Para cada TextBox você terá de colocar o código no KeyDown...e definir para qual componente irá o foco.

    Mas ainda fico na dúvida porque nesse mesmo projeto, tenho o código no KeyPress em outro formulário e funciona normalmente...

    Nunca havia feito no KeyPress...mas funciona também:

    Private Sub Text1_KeyPress(KeyAscii As Integer)
     Select Case KeyAscii
       Case 13: Text2.SetFocus
     End Select
    End Sub

    OBS:

    13 = vbKeyReturn

    Uma constante do VB-6

    se quiser ver mais constantes faça o seguinte:

    - Com o VB aberto clique em "F2";

    - Depois digite: KeyCodeConstants

    - Depois aperte "ENTER"...

    O Object Browser é de grande ajuda para entender a funcionalidade de diversas bibliotecas e componentes da IDE.

  2. Olá Jucla...

    Não é no evento KeyPress...mas nos eventos KeyDown ou KeyUp:

    Usando a estrutura Select Case:

    Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
    Select Case KeyCode
       Case vbKeyReturn
           Text2.SetFocus
    End Select
    End Sub
    Com If Then:
    Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyReturn Then
           Text2.SetFocus
    End If
    End Sub

    Ambos funcionam. Legal.gif

  3. Você já pensou em dividir os procedimentos da Sub Teste ?

    outro detalhe é que para poder chamar a Sub Teste de outro Form ela tem de estar "Public" ou simplesmente sem o "Private"...

    Minha ideia seria colocar parte do script Teste, chamar o outro Form, e depois complementar o procedimento chamando outra Sub (tipo Teste2()) juntando as informações da sub Teste + as infos coletadas do outro Form + Teste2...

    Se sabermos realmente o que você quer fazer, fica mais fácil de darmos idéias mais concretas e simples :rolleyes:

    Qualquer coisa posta o código completo ou até o projeto...

  4. Danielsh...

    Você tá começando agora, certo ?!

    sabes lógica de programação ??? algoritmo ???

    sabes diferenciar os tipos de dados ? String, Integer, Long...

    É bom saber bem estes conceitos básicos antes de partir para a parte prática com BD's...

    Estou usando o mais simples possível, access 2000 e um Data, estou iniciando agora.

    Certo... e qual o modo de conexão com o BD ??? DAO ou ADO ???

    pelo que posso notar no código é DAO...

    então, é bom saber qual vai usar...

    eu não uso muito o DAO...só sei o básico...já o ADO, tenho alguns projetos com ele, então conheço um pouco mais.

    pelo que notei você quer listar os nomes que começam com a letra "b", é isso ???

    faça um teste...se no banco tem um nome, por exemplo João, coloque assim na linha:

    dtb_clientes.Recordset.FindFirst "João"

    só para teste...

    Outro detalhe é que você não especificou o script inicial... pode ser que estejas procurando o nome na coluna "Código"... :mellow:

  5. Que tipo de acesso você usa para comunicar-se com o BD ??? é DAO, RDO ou ADO ???

    ADO é bem melhor, mais atual e mais usada...existem inúmeros exemplos com ele aqui mesmo no fórum.

    Se fosse com ADO, eu faria com um "SELECT WHERE"...

    Um exemplo:

    Dim rs As ADODB.Recordset
    Dim conn As ADODB.Connection
    Dim nome As String
    
    Set conn = New ADODB.Connection
    conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Bases de Dados\BIBLIO.accdb;Persist Security Info=False;"
    
    nome = "Addison-Wesley"
    
    Set rs = New ADODB.Recordset
     rs.CursorLocation = adUseClient
     rs.Open "SELECT Name,Address,Telephone FROM Publishers WHERE Name='" & nome & "'", conn
    
     MsgBox "Nome : " & rs("Name") & vbNewLine & "Endereço : " & rs("Address") & vbNewLine & "Telefone : " & rs("Telephone")
    
    conn.Close

    - No exemplo acima, faço uma conexão ADO com o banco Access 2007 denominado "BIBLIO";

    - Faço uma consulta a tabela "Publishers";

    - Na consulta seleciono apenas os campos: "Name, Address e Telephone";

    - Determino que "apenas" os dados referente ao nome "Addison-Wesley" deve ser apresentado (uso o WHERE);

    - Apresento em caixa de diálogo o que foi selecionado no BD.

    Se quiser saber mais sobre ADO :

    http://www.macoratti.net/ado_vbas.htm

    ftp://ftp.cefetes.br/Cursos/Geomatica/Ger...muito%20boa.pdf

    http://www.codelines.com/ManualVB/Cap%C3%A...C3%ADtulo19.htm

    Existe muito mais conteúdo no Google.

  6. Se seu Vetor só vai ter tamanho 3, informe isso quando o declarar... e se vai trabalhar com numeros defina seu tipo como Integer, Long ou Double...você o colocou como String e está efetuando cálculos com ele...

    pode até funcionar mas não é elegante.

    Dim VALOR(3) As Double
    
    VALOR(0) = 10.8
    VALOR(1) = 20.4
    VALOR(2) = 30.1
    
    ' Um vetor de 3 valores Double
    Quando quiser pegar os valores que estão dentro do vetor fica mais simples usar o "For" com "LBound" e "UBound"
    Dim n As Integer
    Dim Soma As Double
    
      For n = LBound(VALOR) To UBound(VALOR)
          Soma = Soma + VALOR(n)
      Next n
    
    ' O resultado dessa soma está na variável Soma...

    Estou no trabalho quando chegar vejo melhor esse teu erro...

    mas fica a dica :rolleyes:

  7. Respondendo a como você pode alterar o ítem clicado em uma List:

    Sub SetNomeLista()
    Dim I As Integer
    Dim vIt As String, sIt As String
    
       For I = 0 To Lst1.ListCount - 1
         If Lst1.Selected(I) = True Then
           vIt = Lst1.List(I)
           
            sIt = InputBox("Novo nome :", "Alteração")
    
            Lst1.List(I) = sIt
           
         End If
       Next I
      
      Lst1.Refresh
      
    End Sub

    Se preferir o TextBox basta substituir o Input por ele... :rolleyes:

  8. Olá Lucas!

    Explica melhor o que você quer...

    Tipo:

    Esse ListBox terá mais de uma palavra ?

    Assim:

    Casa

    Carro

    Moto

    Iate

    aí você digita Mansão no TextBox e clica em cima de Casa, e o substitui... é isso ???

    EDIÇÃO:

    Aproveita e coloca o código que você criou até agora...

  9. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

    '

    ' NESTA PARTE EU QUERIA ABRIR UM OUTRO ARQUIVO TEXTO E EDITÁ-LO COM AS INFORMAÇÕES DENTRO DESSE MESMO LOOP!!!!

    ' MAS QUANDO USO O OPEN, ELE DIZ QUE O ARQUIVO JÁ ESTÁ ABERTO!!!

    '

    '

    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

    E está mesmo !

    se ao chegar nessa parte você não mais necessitar usar o primeiro arquivo, feche-o...com a instrução "Close #suaVariavel".

    Se ainda vai precisar do mesmo aberto, aconselho a utilizar mais um FreeFile... ou para simplificar, ao invés de criar variáveis usar apenas números...tipo:

    Open .FoundFiles(I) For Input As #1
    
    Open .FoundFiles(I) For Input As #2

    Bem, é minha sugestão... pois você está usando o editor VBA do Excel, e poucas vezes o utilizo... :rolleyes:

  10. Olá...

    Eu não uso o FindFirst...

    aconselho usar a query SQL "SELECT WHERE"...

    tipo assim:

    Dim criterio As String
    criterio = "granja"
    
    "SELECT * FROM tabela WHERE campo='" & criterio & "'"

    Acho que dá pra sacar...se não, quando chegar do trabalho dou uma olhada no seu projeto...

    VALEU !

  11. Frata...

    Isso deve tá ocorrendo porque em seu código deves ter programado para ocultar algum Form ("Form1.Hide") e ao fechar a aplicação não estais finalizando o Form...

    Isso pode ser contornado colocando este script no Evento Unload do Form principal...mas tem de ser no Form principal mesmo, e ele não pode ser descarregado em nenhum momento se não encerra tudo:

    Private Sub Frm_Principal_Unload(Cancel As Integer)
    Dim Frm As Form
    
       For Each Frm In Forms
          Unload Frm
       Next Frm
    
    End Sub

    Valeu !

  12. Olá Zow...

    Tá ocorrendo erro porque você não "fechou" o uso do "If"...

    cê tem que finalizar o If usando o "End If"

    Veja seu código mais organizado:

    Dim J As Long
    Dim quantidade As Long
    
        quantidade = Application.Sheets.Count
    
          For J = 1 To quantidade
    
              If nome = Sheets(J).Name Then
                MsgBox "Todas as planilhas já foram carregadas"
              End If
    
          Next J

    Veja que só adicionei o "End If"...Legal.gif

×
×
  • Criar Novo...