3061: To few parameters. Expected 2 (hatası)

1 2 3
01/06/2009, 12:48

mesudi

Arkadaşlar 3061: To few parameters. Expected 2 hatası DAO kullanarak oluşturduğum Recordset'lerde eğer sorgu ifadesi biraz karmaşık ve uzunsa, özelliklede formlardan parametre girdisi alıyorsa, zaman zaman gördüğüm bir hata mesajı idi. Ama orasıyla burasıyla oynayarak bir şekilde çözebiliyordum. Fakat son günlerde bu hata başıma bela olmuş durumda. Bu konuda bilgisi olan arkadaşlar paylaşırsa sevinirim.

Bu arada probleme yol açan Sql ifadesi şu :

Kod:
Dim rs As Recordset

Set rs = CurrentDb.OpenRecordset("SELECT tblEmployees.NameSurname, Sum(tblTeacherHours.HowManyHours) AS SumOfHowManyHours, tblEmployees.Quantity, tblEmployees.PriceState, tblEmployees.OverTime, tblEmployees.OverTimeQuota, tblEmployees.OverTimeQuotaPrice, tblEmployees.Extra FROM tblEmployees INNER JOIN tblTeacherHours ON tblEmployees.EmployeeID = tblTeacherHours.Teacher WHERE (((tblTeacherHours.Dt) Between [Forms]![frmTeacherSalary]![Date1] And [Forms]![frmTeacherSalary]![Date2])) GROUP BY tblEmployees.NameSurname, tblEmployees.Quantity, tblEmployees.PriceState, tblEmployees.OverTime, tblEmployees.OverTimeQuota, tblEmployees.OverTimeQuotaPrice, tblEmployees.Extra;")
01/06/2009, 16:54

esrefigit

programı gönderseydin bakardık ama şu anda gördüğüm tarihlerri süzdürmede karşılaşılan sorun ancak şunu bir dene ilgili yeri bu şekilde değiştir

(((tblTeacherHours.Dt) Between (#" & [Forms]![frmTeacherSalary]![Date1] &"#) And (#" & [Forms]![frmTeacherSalary]![Date2] & "#)))

büyük ihtimalle düzelmesi lazım
ha unutmadan bu tip tarihleri süzdürebilmek için tablodaki alanların mutlaka tarih-saat olmalı ve aralarındaki işaretleme sistemide windows bölgesel dil ayarları ile aynı olmalı yoksa arıza çıkarır peki bir yolu yokmu olmamı tarih alanını 01062009 şekilne çevirerk between ile daha kolay süzdürme yapılır en azından ben öyle deniyorum
01/06/2009, 19:22

mesudi

Hocam ilgilendiğin için teşekür ederim, denedim ama maalesef olmadı. Tarih alanlarının başına # koymak zaten tarih formatında olan alanlarda gereksiz sanırım. Ben uğraşmaya devam edecem bakalım nasıl olacak.
01/06/2009, 22:19

adnanyurdakul

tarihi sayı formatına çevirerek deneyin
sanırım sorununuz çözülür
between clng(cdate(tarih alanı1) and clng(cdate(tarih alanı2) gibi
02/06/2009, 07:55

esrefigit

en iyisi örneği eklemen görmeden bir şey diyemeyeceğiz
02/06/2009, 13:14

mesudi

Arkadaşlar örnek baya karmaşık. Ben sadeleştirip bugün eklemeye çalışacağım. Yardımlarınız için teşekürler.
1 2 3