Boa tarde
Venho mais uma vez solicitar a vossa ajuda e quero agradecer por todo o apoio que me têm dado até agora.
Pesquisei a questão aqui no fórum e encontrei o que preciso neste link
http://maximoaccess.forumeiros.com/t954-auto-completa-caixa-texto?highlight=completa, facultado pelo Mestre JPaulo.
Até aí tudo bem, percebi que faz o que eu quero, ou seja, pesquisa e premite adicionar registos.
O problema foi quando tentei adaptar à minha base de dados.
Em baixo segue o código. O erro deu onde está assinalado a negrito, itálico e sublinhado. O nome da caixa de listagem é mesmo Lista33. Calculo que seja algo simples, mas como não percebo grande coisa de macros e coisas semelhantes, fiquei perdida.
O código:
Obrigada
Venho mais uma vez solicitar a vossa ajuda e quero agradecer por todo o apoio que me têm dado até agora.
Pesquisei a questão aqui no fórum e encontrei o que preciso neste link
http://maximoaccess.forumeiros.com/t954-auto-completa-caixa-texto?highlight=completa, facultado pelo Mestre JPaulo.
Até aí tudo bem, percebi que faz o que eu quero, ou seja, pesquisa e premite adicionar registos.
O problema foi quando tentei adaptar à minha base de dados.
Em baixo segue o código. O erro deu onde está assinalado a negrito, itálico e sublinhado. O nome da caixa de listagem é mesmo Lista33. Calculo que seja algo simples, mas como não percebo grande coisa de macros e coisas semelhantes, fiquei perdida.
O código:
- Código:
Option Compare Database
Private Sub Command11_Click()
DoCmd.ShowAllRecords
End Sub
Private Sub form_load()
MinhaArrayNumeroUsado = 0
End Sub
Public Sub AutoCompletaValor(ByRef strArray() As String, ByRef MinhaCaixaTexto As TextBox)
'By JPaulo@Outubro 2009
Dim strText As String
Dim strLength As Integer
Dim x As Integer
Dim min As Integer
Dim max As Integer
strText = LCase$(MinhaCaixaTexto.Text)
strLength = Len(strText)
If strLength = 0 Then Exit Sub
min = LBound(strArray)
max = UBound(strArray)
For x = min To max
If x > MinhaArrayNumeroUsado Then
Exit Sub
ElseIf strArray(x) = "" Then
ElseIf strText = LCase$(Left$(strArray(x), strLength)) Then
If Len(strArray(x)) > strLength Then
MinhaCaixaTexto.Text = MinhaCaixaTexto.Text + Mid$(strArray(x), strLength + 1)
MinhaCaixaTexto.SelStart = strLength
MinhaCaixaTexto.SelLength = Len(strArray(x)) - strLength
End If
Exit Sub
End If
Next
End Sub
[u][i][b]Private Sub Observacoes_KeyUp(KeyCode As Integer, Shift As Integer)
'By JPaulo@Outubro 2009
If KeyCode = vbKeyBack Then Exit Sub
PopularMinhaArray myArray, Lista33
AutoCompletaValor myArray, Me.Observacoes
End Sub[/b][/i][/u]
Public Sub PopularMinhaArray(ByRef strArray() As String, ByRef lstBox As ListBox)
'By JPaulo@Outubro 2009
LimparMinhaArray strArray
lstBox.Requery
For i = 0 To lstBox.ListCount - 1
strArray(i) = lstBox.ItemData(i)
Next i
MinhaArrayNumeroUsado = lstBox.ListCount - 1
End Sub
Public Sub LimparMinhaArray(ByRef strArray() As String)
'By JPaulo@Outubro 2009
min = LBound(strArray)
max = UBound(strArray)
For x = min To max
strArray(x) = ""
Next
End Sub
Private Sub Command8_Click()
DoCmd.GoToRecord , , acNewRec
End Sub
Private Sub Command12_Click()
DoCmd.GoToRecord , , acNext
End Sub
Private Sub Command13_Click()
DoCmd.GoToRecord , , acPrevious
End Sub
Obrigada