PDA

View Full Version : سوال: ایجاد ریپورت پویا بر اساس کوئری کراس تب



hashemi.hanieh
چهارشنبه 09 مرداد 1392, 15:43 عصر
سلام دوستان
یه مدت زیادیه که دنبال جواب این سوال میگردم
اما خب بالاخره جوابشو پیدا کردم... اما راه حلشو نمی فهمم... ممنوم میشم راهنمایی کنید
سوال از این قراره:
فرض کنید یک ریپورت که از یک کوئری کراس تب ایجاد شده 3 ستون نمایش داده میشه.... حالا بعدا داده ها اضافه میشه و در کوئری کراس تب 4 ستون داریم... اما ستون های ریپورت تغییر نمیکنه...
توی یه فروم خارجی سرچ کردم و دقیقا برای رفع این مشکل کد زیر رو پیشنهاد داده بودن که با استقبال خوبی مواجه شده بود... اما از اون جایی که من هیچ سر رشته ای از کد نویسی ندارم نتونستم بر اساس کد ها یه مثال واقعی درست کنم... ممنون میشم اگر دوستان با استفاده از تعاریف کد یه فایل اکسس درست کنن و نحوه کار کردن کد رو توضیح بدن
منتظر پاسخ متخصصان هستم:)
Private Sub Report_Open(Cancel As Integer)

'You didn't know how many columns, or what their names would be, until now.
'Fill in the label captions and control sources.

Dim intColCount As Integer
Dim intControlCount As Integer
Dim i As Integer
Dim StrName As String
Dim qdf As QueryDef

On Error Resume Next

Set dbsReport = CurrentDb
Set qdf = dbsReport.QueryDefs(Me.RecordSource)
Set rstReport = qdf.OpenRecordset()
intColCount = rstReport.Fields.Count

intControlCount = Me.Detail.Controls.Count

If intControlCount < intColCount Then
intColCount = intControlCount
End If

' Fill in information for the necessary controls.
For i = 1 To intColCount
StrName = rstReport.Fields(i - 1).Name
Me.Controls("lblPgHdr" & i).Caption = StrName
Me.Controls("tbxData" & i).ControlSource = StrName

Next i

' Hide the extra controls
' nothing to hide, already marked in report as invisible...


End Sub

Abbas Amiri
چهارشنبه 09 مرداد 1392, 19:25 عصر
سلام

یک سری هم به این پست (http://barnamenevis.org/showthread.php?399827-%DA%AF%D8%B2%D8%A7%D8%B1%D8%B4-%DA%AF%DB%8C%D8%B1%DB%8C-%D8%AA%D9%88%D8%B3%D8%B7-Crosstab&p=1777825&viewfull=1#post1777825) بزنید . ضمن اینکه اگر کسی بخواهد به شما کند احتمالا به ساختار ریپورت و منبع داده ان هم نیاز دارد .

hashemi.hanieh
چهارشنبه 09 مرداد 1392, 21:05 عصر
سلام

یک سری هم به این پست (http://barnamenevis.org/showthread.php?399827-%DA%AF%D8%B2%D8%A7%D8%B1%D8%B4-%DA%AF%DB%8C%D8%B1%DB%8C-%D8%AA%D9%88%D8%B3%D8%B7-Crosstab&p=1777825&viewfull=1#post1777825) بزنید . ضمن اینکه اگر کسی بخواهد به شما کند احتمالا به ساختار ریپورت و منبع داده ان هم نیاز دارد .

من تشکر میکنم از پاسخگویی شما... من قبلا این پست رو خونده بودم... اما موضوع من با اون پست کاملا فرق داره... یعنی من از قبل نمی دونم چه فیلدهایی ممکن است به کراس تب اضافه بشه و دوم اینکه حتی تعداد فیلدها رو هم نمیدونم

مشکل من هم دقیقا این بود که منبع داده ها رو نداشتم.... و نمی دونستم اسم منابع داده ای به نام های موجود در کد ارتباط داره یا نه؟ به نظر شما اگر بخواهم این کد رو اجرا کنم چه تیبل ها و ریپورت هایی را با چه نامی باید ایجاد کنم؟ این کد رو در کدام قسمت باید اجرا کنم؟

hashemi.hanieh
چهارشنبه 09 مرداد 1392, 21:15 عصر
من فایل ضمیمه رو قرار دادم... من تو این فایل کوئری کراس تب با نام Ahamiat دارم توی فرمم یه رکورد جدید با نام New Name ایجاد کردم و البته یه Expert جدید با نام New Expert وقتی گزارش باز میشه New Name در بین ردیف های گزارش موجوده اما فیلد و ستون New Expert در گزارش دیده نمیشه... این در حالی است که پس از باز کردن کراس تب Ahamiat، فیلد New Expert قابل مشاهده هست...
ممنون میشم راهنمایی کنید