SelectEQ Fonksiyonu

Tanım


Fiziken var olan ve veritabanında saklanan bir tablodan kullanıcı tarafından, belirlenen alanların, belirlenen değerlerine eşit olan kayıtları sorgulamak için kullanılan bir fonksiyondur. Sorgulama sonucunda elde edilen bilgiler, fonksiyon tarafından adı verilen ve bellekte geçici olarak yaratılan bir tabloya kopyalanır. Bu tablodaki kayıt sayısı geri dönülür. Bu tablodaki veriler, bir rowset nesnesine atanarak kullanılabilir.

Kullanım Şekli


Değişken = Document.SelectEQ(TabloAdı, KriterAlanları, KriterDeğerleri)


Elde edilen tablodaki verilere ulaşmak için, aşağıda verilen RowSet nesnesine atama şekillerinden  biri kullanılmalıdır.


Set RowSetNesnesi = Document.Doc.GetRowSetObject(SonuçRowSetAdı)

Set RowSetNesnesi = Document.Doc.GetTableObject(SonuçRowSetAdı)

Ana Nesne


Document (Doc) nesnesinin elemanıdır. Bir doküman nesnesi ile kullanılmak zorundadır.

Parametreler


Parametre

Açıklama

TabloAdı

Veritabanında saklanan ve içindeki verilerin sorgulanacağı tablonun adı. Bellekte geçiçi olarak oluşturulan rowsetler bu fonksiyonda kullanılamaz.

KriterAlanları

Sorgulanan tabloda kriter olarak kullanılacak olan alan veya alanlar. Tablodaki alan adları ile kullanılırlar. Birden fazla alan, kriter olarak kullanılmak istenirse; alanlar arasında “+” işareti kullanılmalıdır. Sayısal alanlar kriter alan olarak kullanılmazlar.

KriterDeğerleri

Kriter alanlarının değer karşılıklarının girildiği parametredir. Karakter dizini şeklinde değerler girilmelidir. Kıyaslama şekli olarak “=” eşittir kullanılır. Kriter olarak kullanılan alanların sıra ve uzunlukları ile aynı girilmelidir. Özellikle uzunluğuna dikkat edilmelidir. Örneğin EVRKANO adlı alan 10 karakter uzunluğundadır. Bu alan kriter olarak kullanıldığında alan numarasının önünde boşluk olacak şekilde 10 karakter uzunluğunda girilmelidir.

SonuçRowSetAdı

Fonksiyon tarafından belirli bir standartta otomatik olarak yaratılan rowset adı. Standart rowset adı, “AU_TabloAdı_SELECT” şeklinde yaratılır. Rowset adında geçen “AU_” ve “_SELECT” kelimeleri standart olarak; TabloAdı parametresinde kullanılan tablonun adının başına ve sonuna eklenir.

Geri Dönen Değerler


Fonksiyon, parametrelerde verilen kriterlere uygun bulduğu kayıtları geçici bir tabloya kopyalar ve kayıt sayısını tam sayı değeri olarak geri döner. Sıfır (0) uygun kayıt bulanamadığı anlamına gelmektedir. Daha sonra geçici tablo, rowset nesnesine atanarak (set edilerek) kullanılmalıdır.

Hatırlatmalar


SelectEQ, ingilizce Select Equal kelimelerin kısaltmasıdır.

Sadece veritabanında var olan tablolar sorgulanabilir.

Sorgu sonucu oluşan rowsetler büyüklüğüne göre hafızada yer kaplar. Bellek tutarını aşan aşırı büyük sorgular, bellek bitene kadar çalışır, sonra da hata verirler.

Örnek


Sub Makro1()

       Kriter = Doc.Rightjustify("39006446",10)&"000001"

       KayitSayisi = Doc.SelectEQ("MUHDST","EVRAKNO+OR_TRNUM",Kriter)

       Set TempMuhdst = Doc.GetRowSetObject("AU_MUHDST_SELECT")

       Mesaj = "Bulunan Kayıt Sayısı : " & KayitSayisi

       Mesaj = Mesaj & Chr(13) & "Muhasebe Kodu" & Chr(9) & "Masraf Merkezi" & Chr(9) & Doc.RightJustify("Tutar",15)

        for i = 1 to TempMuhdst.GetRowCount()

               HesapKodu = TempMuhdst.MUHASEBECODE(i)

               MasrafMerkezi = TempMuhdst.MUHASEBECODE2(i)

               Tutar = Doc.RightJustify(Doc.NumFormat(TempMuhdst.MUHASEBEFIYAT(i),12,2),15)

               Mesaj = Mesaj & Chr(13) & HesapKodu & Chr(9) & MasrafMerkezi & Chr(9) &Tutar

       next

       Doc.MsgBox Mesaj

End Sub




Yukardaki ilk SelectEQ fonksiyonundan; veritabanında saklanan MUHDST (muhasebe hesap dağılımları) tablosundaki, EVRAKNO ve  OR_TRNUM alanlarının  “39006446“ ve “000001” değerlerine eşit olan tüm kayıtların bulunması istenmiştir. Kriter alanı olarak iki alan, aralarında “+” işareti olacak şekilde kullanılmıştır. Veritabanındaki MUHDST tablosunun EVRKANO alanı 10 (on) karakter ve sağa dayalı olarak saklandığından, örnekteki belge numarasıda sağa dayalı ve 10 hane olacak  şekilde düzenlenmiştir. Fonksiyon ilgili tablodan, kriterlere uyan satıları bulup sayısını, KayitSayisi isimli değişkene atamıştır. Daha sonra bu verileri “AU_TabloAdı_SELECT” kuralına göre, bellekte yarattığı “AU_MUHDST_SELECT” rowsetine kopyalamıştır.


Bir sonraki satırda ise, fonksiyonun yarattığı rowset (“AU_MUHDST_SELECT”), işlemlerde kullanılmak üzere, bir rowset nesnesine atanmıştır.


Sonuç olarak elde edilen tüm satırların, bazı alanları aşağıdaki mesaj kutusunda gösterilmitşir.



Paylaşım Makrosu