PDA

View Full Version : ایراد این کد کجاست ؟ (اکتیو ریپورت)



maryamb
چهارشنبه 22 خرداد 1387, 14:06 عصر
با سلام من با کد که داخل اکتیوریپورت نوشته می شه میخوام دو جدولم رو به هم ربط بدم برای پرینت ، اما نمی دونم ایرادش کجاست ؟

Private Sub ActiveReport_ReportStart()
s = frmbandelkharid.t(3).Text
With dc1
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb;Jet OLEDB:Database Password=1832823"
.Source = "select list.id , shomare,bandel,zekhamat from list and kharid where list.id= kharid.id2 and list.id= '" & s & "' "
.Refresh
End With
Field1.DataField = "id"
Field2.DataField = "bandel"
Field3.DataField = "zekhamat"
Field4.DataField = "shomare"
End Sub

که در اینجا فیلد های id , shomare مربوط به جدول list و bandel , zekhamat , id2 مربوط به جدول kharid می باشد.
البته به جای and که اون بالا رنگیه کاما هم گذاشتم ولی بازم اررور داد

ASKaffash
چهارشنبه 22 خرداد 1387, 15:39 عصر
سلام
کدهای فوق را با فرض صحیح بودن از درون واقعه ActiveReport_ReportStart خارج کنید وبه نقطه ای قبل از جائی که نوشته اید ActiveReport1.Show انتقال دهید.

hrj1981
چهارشنبه 22 خرداد 1387, 15:50 عصر
1-در قسمت select دستور شما از فيلد id2 خبري نيست.
2-اگر در گزارشتان فيلد id را از جدول list فراخواني نموده ايد بايد در قسمت ديتافيلد خودتان " list.id" را بنويسيد.
تذكر : اگر فيلد id در 2 جدول شما تكرار نشده احتياجي نيست بصورت بالا آنها را بنويسيد.
3-در قسمت زير

list.id= '" & s & "' "
اگر اينجوري بنويسي شايد مشكلت حل بشه

list.id= " & s

maryamb
چهارشنبه 22 خرداد 1387, 16:02 عصر
امتحان کردم باز هم همون خطا رو می ده .
فقط وقتی عوض s عدد مورد نظرمو می ذارم خطا نمی گیره . اونم که نمی شه چون s باید از تو برنامه مقدار دهی بشه . تازه عین این کد رو تو یه ریپورت دیگه تو همین برنامه استفاده کردم و خطا نمی گرفت . فقط فرق اون با این در اینجا بود که اون به یه جدول متصل بود ولی این به دو جدول

maryamb
چهارشنبه 22 خرداد 1387, 16:05 عصر
اگر اينجوري بنويسي شايد مشكلت حل بشه

کد:
list.id= " & s
__________________

مرسی با این روش مشکل حل شد .