ozanakkaya teşekkürler cvp için
yeni başladım
Access e acemiyim biraz
bu modül ve kodu denediğimde hata veriyo vb da
(Screen.ActiveForm.ActiveControl.ControlSource)
yazan yeri gösteriyor .
(02/12/2012, 04:19)metehan16 yazdı: [ -> ]ozanakkaya teşekkürler cvp için
yeni başladım Access e acemiyim biraz
bu modül ve kodu denediğimde hata veriyo vb da
(Screen.ActiveForm.ActiveControl.ControlSource)
yazan yeri gösteriyor .
Uygulamanızın vb sayfasını açıp referanslarını kontrol edin
yeni başlayan biri olarak çalıştıramadım. vermiş olduğunuz kodlarda kutuadi ifadesi formdan forma değişmeli mi? bir de bu kodları vb penceresinde modül ekle diyerek iki ayrı modüle yapıştırdım. doğru mu yaptım?
(06/01/2013, 23:42)fenrisgrim yazdı: [ -> ]yeni başlayan biri olarak çalıştıramadım. vermiş olduğunuz kodlarda kutuadi ifadesi formdan forma değişmeli mi? bir de bu kodları vb penceresinde modül ekle diyerek iki ayrı modüle yapıştırdım. doğru mu yaptım?
kutuadi formdan forma değişmez.
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
otomotiktamamla (Screen.ActiveForm.ActiveControl.ControlSource)
End Sub
üstteki kodu forma, alttaki kodu modüle eklemeniz gerekiyor.
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
1. mesajdaki örnek uygulamayı inceleyiniz...
bir yerde yanlış yapıyorum ama nerde tek başıma bulamadım. eklediğim dosyaya yardım edebilir misiniz?
If GetAsyncKeyState hatası veriyor
Option Explicit
#If VBA7 And Win64 Then
Private Declare PtrSafe Function apiShowWindow Lib "user32" _
Alias "ShowWindow" (ByVal hwnd As Long, _
ByVal nCmdShow As Long) As Long
#Else
Private Declare Function apiShowWindow Lib "user32" _
Alias "ShowWindow" (ByVal hwnd As Long, _
ByVal nCmdShow As Long) As Long
#End If
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