Skip to main content

AccessTr.neT


Excel İle Access' Sorgulama Yaparken Büyük/küçük Harf Sorunu

salvationkemal
salvationkemal
10
831

Excel İle Access' Sorgulama Yaparken Büyük/küçük Harf Sorunu

Çözüldü #1
Veri Tabanında "Metin" olarak kayıtlı bir isim "METİN" olarak sorgulandığında sonuç alınamıyor. Ayrıca Option Compare Text ifadesini de Makrolarımın bulunduğu Modül 1 içinde en üste eklediğim halde sorun çözülmedi.
Tüm kodlar aşağıdaki gibidir.
Kod
Option Compare Text
Private con As Object, rs As Object
Sub 
baglanti()
Set con = CreateObject("adodb.connection")
con.Open 
"provider=microsoft.jet.oledb.4.0;data source = " & ThisWorkbook.Path & 
"\hesap.mdb"
End Sub

Sub CariToplam()
Call baglanti
Dim sorgu As 
String
sorgu1 = "select sum(para) as para from sil where [VADE]='Vasi Vadeli 
TL'"
Set rs = con.Execute(sorgu1)
Range("Sayfa3!c10").Value = 
rs("para").Value
sorgu2 = "select sum(para) as para from sil where 
[VADE]='Vasi Vadeli Usd'"
Set rs = 
con.Execute(sorgu2)
Range("Sayfa3!c11").Value = rs("para").Value
sorgu3 = 
"select sum(para) as para from sil where [VADE]='Vasi Vadeli Euro'"
Set rs = 
con.Execute(sorgu3)
Range("Sayfa3!c12").Value = rs("para").Value
sorgu4 = 
"select sum(para) as para from sil where [VADE]='Vasi Vadesiz TL'"
Set rs = 
con.Execute(sorgu4)
Range("Sayfa3!c13").Value = rs("para").Value
sorgu5 = 
"select sum(para) as para from sil where [VADE]='Vasi Vadesiz Usd'"
Set rs = 
con.Execute(sorgu5)
Range("Sayfa3!c14").Value = rs("para").Value
sorgu6 = 
"select sum(para) as para from sil where [VADE]='Vasi Vadesiz Euro'"
Set rs = 
con.Execute(sorgu6)
Range("Sayfa3!c15").Value = rs("para").Value
sorgu7 = 
"select sum(para) as para from sil where [VADE]='Tevdi Mahalli Vadeli 
Euro'"
Set rs = con.Execute(sorgu7)
Range("Sayfa3!c16").Value = 
rs("para").Value
sorgu8 = "select sum(para) as para from sil where 
[VADE]='Tereke Vadeli TL'"
Set rs = 
con.Execute(sorgu8)
Range("Sayfa3!c17").Value = rs("para").Value
sorgu9 = 
"select sum(para) as para from sil where [VADE]='Tereke Vadesiz TL'"
Set rs = 
con.Execute(sorgu9)
Range("Sayfa3!c18").Value = rs("para").Value
sorgu10 = 
"select sum(para) as para from sil where [VADE]='Tereke Vadeli Usd'"
Set rs = 
con.Execute(sorgu10)
Range("Sayfa3!c19").Value = rs("para").Value
t1 = 
Range("Sayfa3!c10")
t2 = Range("Sayfa3!c13")
t3 = 
Range("Sayfa3!c17")
t4 = Range("Sayfa3!c18")
st = t1 + t2 + t3 + 
t4
Range("Sayfa3!c20") = st
y1 = Range("Sayfa3!c12")
y2 = 
Range("Sayfa3!c15")
y3 = Range("Sayfa3!c16")
sy = y1 + y2 + 
y3
Range("Sayfa3!c21") = sy
z1 = Range("Sayfa3!c11")
z2 = 
Range("Sayfa3!c14")
z3 = Range("Sayfa3!c19")
sz = z1 + z2 + 
z3
Range("Sayfa3!c22") = sz
son = st + sy + sz
Range("Sayfa3!c23") = 
son
End Sub

Sub AccesseKaydet()
Call baglanti
Dim i As 
Integer
Set rs = CreateObject("adodb.recordset")
With 
Sheets("sayfa1")
rs.Open "select * from sil", con, 1, 3
For i = 16 To 
.Range("K65000").End(3).Row
    rs.addnew
    rs.fields(0).Value = 
Cells(i, 1).Value
    rs.fields(1).Value = Cells(i, 2).Value
    
rs.fields(2).Value = Cells(i, 3).Value
    rs.fields(3).Value = Cells(i, 
4).Value
    rs.fields(4).Value = Cells(i, 5).Value
    rs.fields(5).Value 
= Cells(i, 6).Value
    rs.fields(6).Value = Cells(i, 7).Value
    
rs.fields(7).Value = Cells(i, 8).Value
    rs.fields(8).Value = Cells(i, 
9).Value
    rs.fields(9).Value = Cells(i, 10).Value
    
rs.fields(10).Value = Cells(i, 11).Value
    rs.fields(11).Value = Cells(i, 
12).Value
    rs.fields(12).Value = Cells(i, 13).Value
    
rs.fields(13).Value = Cells(i, 14).Value
    rs.Update
Next i
End 
With
MsgBox "Kay?tlar veritaban?na aktar?ld?", vbInformation, 
"Www.ExcelVBA.Net"
End Sub


Sub Verial()
Dim i As Integer, sorgu 
As String
Call baglanti
Range("a16:L65535").ClearContents
Set rs = 
CreateObject("adodb.recordset")
With Sheets("sayfa1")
k1 = 
Range("C1")
k2 = Range("C2")
k3 = Range("C3")
k4 = Range("C4")
k5 = 
Range("C5")
r1 = Range("C6")
r2 = Range("C7")
r3 = Range("C8")
r4 = 
Range("C9")
r5 = Range("C10")
r6 = Range("G1")
s = "select * from sil 
Where [YIL] AND [NO]"
If .Range("C1").Text <> "" Then s = s & " and 
[YIL] like  """ & k1 & """"
If .Range("C2").Text <> "" Then s = 
s & " and [NO] like  """ & k2 & """"
If .Range("C3").Text 
<> "" Then s = s & " and [DOSYAES] like  """ & k3 & """"
If 
.Range("C4").Text <> "" Then s = s & " and [TARİH] like  """ & k4 
& """"
If .Range("C5").Text <> "" Then s = s & " and [HESAPNO] 
like  """ & k5 & """"
If .Range("C6").Text <> "" Then s = s 
& " and [ACIKLAMA] like  ""%" & r1 & "%"""
If .Range("C7").Text 
<> "" Then s = s & " and [TLDÖVİZ] like  """ & r2 & 
"%"""
If .Range("C8").Text <> "" Then s = s & " and [VADE] like  
""" & r3 & """"
If .Range("C9").Text <> "" Then s = s & " 
and [PARA] like  """ & r4 & """"
If .Range("C10").Text <> "" 
Then s = s & " and [DURUM] like  ""%" & r5 & "%"""
If 
.Range("G1").Text <> "" Then s = s & " and [OZET] like  ""%" & r6 
& "%"""
s = s & " order by [YIL],[NO]"
  rs.Open s, con, 1, 
1
Range("a16").CopyFromRecordset rs
  If 
WorksheetFunction.Count(Range("A16:A65000").Value) Then
  toplambulunan = 
WorksheetFunction.Count(Range("A16:A65000").Value)
  Range("Sayfa1!I4").Value 
= toplambulunan
Exit Sub
End If
  Range("A65000").End(xlUp).Offset(1, 
0).Select
End With
End Sub

Sub 
Temizle()
Range("a16:N65535").ClearContents
If 
WorksheetFunction.CountA(Range("A16:N65000")) = 0 Then
  bulunamayan = 
WorksheetFunction.CountA(Range("A16:N65000")) = 0
  ar = bulunamayan + 1
  
Range("Sayfa1!I4").Value = ar
  
Exit Sub
End 
If
Range("A16").Select
End Sub


Sub FaturaGuncelle()
Dim 
satir As Range
Dim boshucre As Range
For Each satir In 
Range("A16:I16")
If satir = Empty Then
MsgBox ("BOŞ HÜCRE VAR GÜNCELLEME 
YAPILMADI")
Exit Sub
End If
Next

Dim SutunSay, SatirSay, 
SatirSay2, x As Long
SutunSay = 14
SatirSay = Cells(16, 
1).End(xlDown).Row
For x = 2 To SutunSay
SatirSay2 = Cells(16, 
x).End(xlDown).Row
If SatirSay <> SatirSay2 Then
    MsgBox ("Boş 
veri var güncelleme iptal edildi")
    Exit Sub
End If
Next x
MsgBox 
("BİLGİLER VERİ TABANINA AKTARILDI")
Dim i As Integer
With 
Sheets("sayfa1")
Call baglanti
For i = 16 To 
.Range("L65536").End(3).Row
U1 = Cells(i, 1).Value
U2 = Cells(i, 
2).Value
U3 = Cells(i, 3).Value
U4 = Cells(i, 4).Value
U5 = Cells(i, 
5).Value
U6 = Cells(i, 6).Value
U7 = Cells(i, 7).Value
U8 = Cells(i, 
8).Value
U9 = Cells(i, 9).Value
U10 = Cells(i, 10).Value
U11 = Cells(i, 
11).Value
U12 = Cells(i, 12).Value
U13 = Cells(i, 13).Value
U14 = 
Cells(i, 14).Value
sorgu = "select * from sil where [SIRA]=" & U1 & " 
AND [YIL]=" & U2 & " AND [NO]=" & U3 & ""
Set rs = 
CreateObject("adodb.recordset")
rs.Open sorgu, con, 1, 3
    
rs.fields(0).Value = U1
    rs.fields(1).Value = U2
    rs.fields(2).Value 
= U3
    rs.fields(3).Value = U4
    rs.fields(4).Value = U5
    
rs.fields(5).Value = U6
    rs.fields(6).Value = U7
    rs.fields(7).Value 
= U8
    rs.fields(8).Value = U9
    rs.fields(9).Value = U10
    
rs.fields(10).Value = U11
    rs.fields(11).Value = U12
    
rs.fields(12).Value = U13
    rs.fields(12).Value = U14
    
 rs.Update
      Next i

End With
End Sub

Sub say()
Call 
baglanti
Dim sorgu As String

sorgu = "SELECT COUNT(NO) AS YIL FROM 
sil"
Set rs = con.Execute(sorgu)
e = rs("YIL").Value
f = e + 
1
Range("Sayfa1!f8").Value = f

End Sub
Son Düzenleme: 02/10/2019, 08:49, Düzenleyen: salvationkemal.
Cevapla
#2
Yalnızca sorgulama Sub VeriAl () ise
Sub Verial()
Dim i As Integer, sorgu As String
Call baglanti
Range("a16:L65535").ClearContents
Set rs = CreateObject("adodb.recordset")
With Sheets("sayfa1")
k1 = Range("C1")
k2 = Range("C2")
k3 = Range("C3")
k4 = Range("C4")
k5 = Range("C5")
r1 = Range("C6")
r2 = Range("C7")
r3 = Range("C8")
r4 = Range("C9")
r5 = Range("C10")
r6 = Range("G1")
s = "select * from sil Where [YIL] AND [NO]"
If .Range("C1").Text <> "" Then s = s & " and [YIL] like  """ & k1 & """"
If .Range("C2").Text <> "" Then s = s & " and [NO] like  """ & k2 & """"
If .Range("C3").Text <> "" Then s = s & " and [DOSYAES] like  """ & k3 & """"
If .Range("C4").Text <> "" Then s = s & " and [TARİH] like  """ & k4 & """"
If .Range("C5").Text <> "" Then s = s & " and [HESAPNO] like  """ & k5 & """"
If .Range("C6").Text <> "" Then s = s & " and [ACIKLAMA] like  ""%" & r1 & "%"""
If .Range("C7").Text <> "" Then s = s & " and [TLDÖVİZ] like  """ & r2 & "%"""
If .Range("C8").Text <> "" Then s = s & " and [VADE] like  """ & r3 & """"
If .Range("C9").Text <> "" Then s = s & " and [PARA] like  """ & r4 & """"
If .Range("C10").Text <> "" Then s = s & " and [DURUM] like  ""%" & r5 & "%"""
If .Range("G1").Text <> "" Then s = s & " and [OZET] like  ""%" & r6 & "%"""
s = s & " order by [YIL],[NO]"
  rs.Open s, con, 1, 1
   Range("a16").CopyFromRecordset rs
  If WorksheetFunction.Count(Range("A16:A65000").Value) Then
  toplambulunan = WorksheetFunction.Count(Range("A16:A65000").Value)
  Range("Sayfa1!I4").Value = toplambulunan
Exit Sub
End If
  Range("A65000").End(xlUp).Offset(1, 0).Select
 End With
 End Sub

 Dosyayı ekledim.
.rar deneme.rar (Dosya Boyutu: 1,19 MB | İndirme Sayısı: 3)
Son Düzenleme: 02/10/2019, 08:54, Düzenleyen: salvationkemal.
Cevapla
#3
Bu arada kusura bakmayın günaydın. İyi çalışmalar.
Cevapla
#4
program sorunsuz çalışıyor gibi geldi
sorgula butonu, c6daki veriyi sil tablosundaki açıklama alanında arıyor değil mi?
sil tablosunda içinde metin olan açıklama olmadığı için kayıt göstermiyordu ekledim buldu
Cevapla
#5
"METİN" olarak kaydedilmiş bir ismi "Metin" olarak sorguladığında bulmuyor. Kayıt yapılan ister "METİN" olsun ister "Metin" olsun sorgulama yapılırken büyük küçük harf duyarlılığı olmasın. Gönderdiğim ekte "METİN" olarak ismi tarattırdığımızda veri geliyor. Fakat "Metin" olarak gelmiyor.
Kod
Veri Tabanında "Metin" olarak kayıtlı bir isim "METİN" olarak sorgulandığında sonuç alınamıyor. Ayrıca Option Compare Text ifadesini de Makrolarımın bulunduğu Modül 1 içinde en üste eklediğim halde sorun çözülmedi.

Tüm kodlar aşağıdaki gibidir.

İlk mesajda ifade yanlışlığı var. Özür Dilerim.
Doğrusu aşağıdaki gibi
Veri Tabanında "METİN" olarak kayıtlı bir isim "Metin" olarak sorgulandığında sonuç alınamıyor. Ayrıca Option Compare Text ifadesini de Makrolarımın bulunduğu Modül 1 içinde en üste eklediğim halde sorun çözülmedi.
Cevapla
#6
If .Range("C6").Text <> "" Then s = s & " and [ACIKLAMA] like  ""%" & r1 & "%""" satırını aşağıdaki satırla değiştirip dener misiniz
benzer bir sorun hem metin tabanlı diğer aramalarda hem de ı-I dönüşümünde de  yaşandığı için
Kod
If .Range("C6").Text <> "" Then s = s & " and (instr(1,[ACIKLAMA], """ & r1 & """)>0 " & _
                                        " or instr(1,[ACIKLAMA], """ & Replace(r1, "i", "İ") & """)>0 " & _
                                        " or instr(1,[ACIKLAMA], """ & Replace(r1, "ı", "I") & """)>0) "
Not: dikkatimi çekti sorgunuzdaki s = "select * from sil Where [YIL] AND [NO]" satırında kullandığınız  [YIL] AND [NO] neden var sorun çıkarmıyor mu?
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da