Gelişmiş Filtreleme Çok Değişkenli
#7
sayılar kullanılırken tek tırnağa gerek yok
Kod:
If Me.Tb7_DYıl <> "" Then txtOlcut = txtOlcut & " and depoyili='" & Me.Tb7_DYıl.Value & "'"
yerine aşağıdaki gibi dener misiniz?
Kod:
If Me.Tb7_DYıl <> "" Then txtOlcut = txtOlcut & " and depoyili=" & Me.Tb7_DYıl.Value



  Alıntı
Bu mesajı beğenenler: toprak2349
#8
(13-07-2019, 13:04)halily demiş ki: sayılar kullanılırken tek tırnağa gerek yok
Kod:
If Me.Tb7_DYıl <> "" Then txtOlcut = txtOlcut & " and depoyili='" & Me.Tb7_DYıl.Value & "'"
yerine aşağıdaki gibi dener misiniz?
Kod:
If Me.Tb7_DYıl <> "" Then txtOlcut = txtOlcut & " and depoyili=" & Me.Tb7_DYıl.Value

Harikasınız  Vv
Hocam şöyle bir şey mümkün mü ? 
Sorgu sonuçlarımızı listbox ta gösteriyoruz. Peki sorgu sonuçlarını excel e aktarabilir miyiz ? Ama cmdbutton a tıklayınca önceden belirli klasöre veya önceden belirlenen isimle kayıt etmek değil de cmdbutton a tıklayınca kayıt yerini ve kayıt ismini son kullanıcı belirlesin. Excelde çalışma yaparken farklı kaydet e tıkladığımızda çıkan pencere gibi pencere çıkıp kaydedilecek dosya yolunu ve adını son kullanıcı belirlese olur mu ? Nasıla bir kod bloğu ile olabilir ?



  Alıntı
Bu mesajı beğenenler:
#9
(13-07-2019, 11:24)toprak2349 demiş ki:
(12-07-2019, 23:28)celalll demiş ki: bu tür fil,treleme olaylarında elsef kullanmak zorunda değilsin, sorgu ile yapabilirsin bu tür örnekler sitede var "filitreleme "olarak kelime aratırsan örnekler bulabilirsin
ayrıca excel ile neden kullanıyorsun anlamadım acces yeter diye düşünüyorum.
kolay gelsin

Aslında programı şu şekilde kullanmayı düşündüğüm için excel+acess birlikte kullanıyorum. 
access dosyası ortak interneti kullanan 3-4 bilgisayarın paylaşılan klasörüne atacağım. Her bir bilgisayarda da excel olacak yani program arayüzü. Tüm kullanıcılar yapılan değişikliği aynı anda görebilsin, verikaydında yapılan değişiklikler eklemeler, çıkarmalar vb. 
Yani daha bunu denemedim ama çalışır diye düşünüyorum ! Sizce de bu şekilde çalışır mı ?
Bir de sadece access da tasarlansa program ne gibi avantajları olur ?

Bence sadece acceste istediğin herşey harika bir şekilde çalışır,excelik bir durum yok,sizin için istekleriniz için acces yeter ve artar,istediğini sorgu raporla alabilirsiniz.



  Alıntı
Bu mesajı beğenenler: toprak2349
#10
(13-07-2019, 12:47)toprak2349 demiş ki:
Kod:
txtOlcut = Mid(txtOlcut, 5)  ' en başa eklediğimiz fazladan " and " çıkarmak için

baglan.Open "Provider=Microsoft.Ace.Oledb.12.0;data source= " & ThisWorkbook.Path & "\UF.accdb;"
rs.Open "select * from envanter where " & txtOlcut, baglan, adOpenKeyset, adLockPessimistic
yukardaki kısmı aşağıdaki ile değiştirir misiniz , tüm alanlar boş bırakıldığımda "where" kısmı nedeniyle hata veriyor
Kod:
txtOlcut = Mid(txtOlcut, 5) ' en başta eklediğimiz fazladan " and " kısmını çıkarmak için
If Len(txtOlcut) > 0 Then txtOlcut = " where " & txtOlcut '<==Eklendi
baglan.Open "Provider=Microsoft.Ace.Oledb.12.0;data source= " & ThisWorkbook.Path & "\UF.accdb;"
rs.Open "select * from envanter " & txtOlcut, baglan, adOpenKeyset, adLockPessimistic '<== " where " kodu çıkarıldı
Excele yollama kodu aşağıdadır, bende sorunsuz çalıştı
Kod:
Dim Excl As Excel.Application
Dim KTP As Excel.Workbook
Dim SYF As Excel.Worksheet

Set Excl = CreateObject("Excel.Application")
Excl.Application.Visible = True

    Set KTP = Excl.Workbooks.Add
    Set SYF = KTP.Worksheets(1)
  'Not: hangi alanları dahil edeceğinizi bilmediğimden S ye kadar aldım _
        siz kendiniz değiştirirsiniz
SYF.Range("A1:S" & Lb7_Sonuçlar.ListCount).Value = Lb7_Sonuçlar.List
dilerim işinize yarar



  Alıntı
Bu mesajı beğenenler: toprak2349
#11
@halily excele kaydetme mantığını anladım teşekürler. Birşey daha sorsam size ...
Hazırladığımız userform sağ en üstte sadece çarpı "x" işareti var. Minimize ve maximize butonu ekleyip o butonları da aktif hale getirebilir miyiz acaba ?



  Alıntı
Bu mesajı beğenenler:
#12
önce bir modül oluşturup aşağıdaki kodu ekleyin
Kod:
Option Explicit
' sabit değerler tanımlanıyor
Public Const GWL_STYLE As Long = -16
Public Const WS_MINIMIZEBOX = &H20000
Public Const WS_MAXIMIZEBOX = &H10000
Public Const WS_FULLSIZING = &H70000

#If VBA7 And Win64 Then '64 bit için fonksiyon tanımları
    Public Declare PtrSafe Function FindWindowA& Lib "user32" (ByVal lpClassName$, ByVal lpWindowName$)
    Public Declare PtrSafe Function GetWindowLongA& Lib "user32" (ByVal hwnd&, ByVal nIndex&)
    Public Declare PtrSafe Function SetWindowLongA& Lib "user32" (ByVal hwnd&, ByVal nIndex&, ByVal dwNewLong&)
#Else '32 bit için
    Public Declare Function FindWindowA& Lib "user32" (ByVal lpClassName$, ByVal lpWindowName$)
    Public Declare Function GetWindowLongA& Lib "user32" (ByVal hwnd&, ByVal nIndex&)
    Public Declare Function SetWindowLongA& Lib "user32" (ByVal hwnd&, ByVal nIndex&, ByVal dwNewLong&)
#End If
'_________________________________________________________

'Her userformun Captionı'na göre çağırır
Public Sub InitMaxMin(mCaption As String, Optional Max As Boolean = True, Optional Min As Boolean = True _
        , Optional Sizing As Boolean = True)
Dim hwnd As Long
    hwnd = FindWindowA(vbNullString, mCaption)
    If Min Then SetWindowLongA hwnd, GWL_STYLE, GetWindowLongA(hwnd, GWL_STYLE) Or WS_MINIMIZEBOX
    If Max Then SetWindowLongA hwnd, GWL_STYLE, GetWindowLongA(hwnd, GWL_STYLE) Or WS_MAXIMIZEBOX
    If Sizing Then SetWindowLongA hwnd, GWL_STYLE, GetWindowLongA(hwnd, GWL_STYLE) Or WS_FULLSIZING
End Sub
sonra form "UserForm_Initialize()" olayına aşağıdaki kodu ekleyip deneyin
Kod:
InitMaxMin (Me.Caption)
dilerim işinize yarar.



  Alıntı
Bu mesajı beğenenler: toprak2349


Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi