Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Cloud_Strife

ligaçao a BAse de dados (?)

Mensagens Recomendadas

Cloud_Strife

Hey Malta . VEnho aqui com uma duvida .

Eu tenho um projecto a fazer  . Deram-me inicialmente uma tabela em excel com muitas referencia/numero , cada referencia (do codigo de barras) corresponde a um só item ,  ou seja  cada item tem a sua .

Agora o que queria fazer era , com o visual basic, criar uma text box , que ao digitar uma referencia aleatoria ,  presente nessa mesma tabela , ela me encontrasse o item e desse os dados do mesmo . Ate a data tenho isto (vou por imagens para terem uma ideia de como queria por isto)

textbox.png

width=750 height=562http://img717.imageshack.us/img717/9163/semttuloea.png[/img]

COmo podem ver na segunda imagem , existe um numero identificavel que diferencia  cada produto , o que queria fazer era ligar esta informaçao ao meu programa de visual basic que esta presente no mesmo documento (primeira imagem)

btw , na primeira imagem , a que demonstra o meu programa em visual basic , sao 2 imagens mas o programa é o mesmo , ao digitar o codigo de barras , e ao carregar em ok , o programa vai avançar para a 2 pagina onde preenchera automaticamente todos aqueles campos , referentes a referencia digitada .

Obrigado pela atençao .

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Tuntankamon

Isso é relativamente simples.

Primeiro form, ao digitares o código, só tens de meter um ciclo for de 1 até ao número de linhas existentes no mesmo (UsedRange). Se encontrares só tens de abrir o segundo form, e leres os valores presentes na  linha onde encontrastes o código de barras.

Isto é uma das lógicas que podes seguir...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Cloud_Strife

Portanto , na primeira imagem , meti la o seguinte codigo

Private Sub SelectUsedRange()

    Me.Activate()

    Me.Range("B1", "B245").Value2 = 245

    If Me.Visible = Excel.XlSheetVisibility.xlSheetVisible Then

        Me.UsedRange.Select()

    End If

End Sub

Era isto que falavas?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Tuntankamon

Não exactamente...

O meu VB está um bocado enferrujado... mas algo deste género:

Private Sub whatToDoNext()
    Dim valor As Integer
    valor = FindInfo(Text1.Text)
    If valor = 0 Then
        MsgBox ("Nao encontrado")
    Else
        Form2.linha = valor
        Form2.Text1.Text = "bbbb"
        Form2.Show
    End If

End Sub

Private Function FindInfo(ByVal strSearch As String) As Integer
    Set objExc = New Excel.Application
    Set doc = objExc.Workbooks.Open("Ficheiro")
    Set folha = doc.Worksheets(0)
    Set intervalo = folha.UsedRange
    
    Dim max As Integer
    Dim cell As Excel.Range
    max = intervalo.Rows.Count
    
    For i = 1 To max
        cell = folha.Cells(i, 1)
        cell.Value2 = strSearch
        FindInfo = i 'Indica a linha onde encontrou a info
    Next
    FindInfo = 0 'Se deovolver 0 é porque n encontrou nada
End Function

Tens de ter as vars decladaras, depois no click do botao de pequisa do primeiro form1, passas o valor que está presente na textbox para a funcao que vai tentar encontrar a linha com o valor, se encontrar devolve o número da linha senão devolve 0.

Depois podes fazer de dois modos:

1º - Tens uma var publica no segundo form, e passares o valor encontrado para lá e nesse mesmo form leres os dados da linha

2º - Leres os valores todos no primeiro form e definires os mesmos e só apresentar o segundo form.

O código deve ter erros, mas serve para explicar a teoria.

Boa sorte

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.