18/11/2008, 08:48
herkes accessde Excel gibi bilgi daha önce girilmişse ben harf yazdıkça otomotik tamamlasın der
şimdi aranızdan bir kaç kişinin canım bunun nesi var diyenleri duyabiliyorum bir sorgu yaparım len ile mid vs vs ile harfleri aratır bulurum veya önce açılır kutu yapar sonra onu metin kutusuna dönüştürürüm gibi değişik önerileri olanlar olacaktır. peki bunun nesi var diyenlere bu kod yalnızca bir defa forma yazılıyor o içine girilen metin kutusunun denetim kaynağını araştırıyor ve ordaki bilgileri kontrol ediyor siz yazdıkça tamamlanıyor
bu kısım formunuza yalnız unutmadan tuş önizlemeyi açacaksınız
buda modül
örnek ekte
64 bit için buraya tıklayınız.
şimdi aranızdan bir kaç kişinin canım bunun nesi var diyenleri duyabiliyorum bir sorgu yaparım len ile mid vs vs ile harfleri aratır bulurum veya önce açılır kutu yapar sonra onu metin kutusuna dönüştürürüm gibi değişik önerileri olanlar olacaktır. peki bunun nesi var diyenlere bu kod yalnızca bir defa forma yazılıyor o içine girilen metin kutusunun denetim kaynağını araştırıyor ve ordaki bilgileri kontrol ediyor siz yazdıkça tamamlanıyor
bu kısım formunuza yalnız unutmadan tuş önizlemeyi açacaksınız
Kod:
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
otomotiktamamla (Screen.ActiveForm.ActiveControl.ControlSource)
End Sub
buda modül
Kod:
Option Compare Database
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Function otomotiktamamla(kutuadi As String)
Dim ctl As Control
Dim LenOldText As Long
Static Once As Boolean
Dim rst As Object
If Once = False Then
If GetAsyncKeyState(vbKeyBack) = 0 _
And GetAsyncKeyState(vbKeyDelete) = 0 Then
Once = True
On Error Resume Next
Set ctl = Screen.ActiveForm.ActiveControl
Set rst = Screen.ActiveForm.RecordsetClone
If ctl.Text <> "" Then
rst.FindFirst kutuadi & " LIKE '" & ctl.Text & "*'"
If Not rst.NoMatch Then
LenOldText = Len(ctl.Text)
ctl.Text = rst(kutuadi)
ctl.SelStart = LenOldText
ctl.SelLength = Len(ctl.Text) - LenOldText
End If
End If
Set ctl = Nothing
Set rst = Nothing
On Error GoTo 0
Once = False
End If
End If
End Function
örnek ekte
64 bit için buraya tıklayınız.