Jump to content
  • 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 (?)

Recommended Posts

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 .

Share this post


Link to post
Share on other 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...

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.