PDA

View Full Version : Data Environment



@AM!R!
دوشنبه 26 اردیبهشت 1384, 15:34 عصر
سلام دوستان یک سوال؟
من با استفاده از یک Data Environment یک Data Report در برنامه ساخته ام.
تا از طریق آن از یکی از جدول های بانکم گزارش بگیرم. ولی وقتی یک رکورد به جدول اضافه می کنم (به غیر از رکورد اول) و سپس به سراغ Data Report می روم اثری از این رکورد جدید نیست. برنامه را از حالت اجرا به حالت طراحی برده و دوباره اجرا می کنم. سپس رکوردی را که آخرین بار وارد کرده بودم در Data Report می بینم.
از دوستانی که راه حلی برای این مشکل دارند . تقاضا دارم مرا یاری دهند.
ممنون.

sadegi
دوشنبه 26 اردیبهشت 1384, 16:29 عصر
دوست عزیز ببین این ebook به دردت میخوره
فکر کنم مشکلت رو حل میکنه
البتته اونو بگم که اون من ننوشتم کار یکی از دوستان هست(اینو گفتم که سوء تفاهم نشه)
:mrgreen: :flower: :flower: :flower:

Morteza Manafpour
دوشنبه 26 اردیبهشت 1384, 22:13 عصر
with DataEnvironment.rstblname
if(state=adstateopen)then .close
.open "Select * from tblname"
.requary
end with
datareport1.show

sadegi
سه شنبه 27 اردیبهشت 1384, 00:42 صبح
دوست عزیز آیا می شد سطر دوم و سوم رو حذف کرد و به جای آن اینجوری نوشت؟

with DataEnvironment.rstblname
if(state=adstateopen)then
.requary
end with
datareport1.show

@AM!R!
چهارشنبه 28 اردیبهشت 1384, 01:37 صبح
دوستان ممنون.
امتحان می کنم و نتیجه را به اطلاع شما می رسانم.
:flower: :flower: :flower: :flower: :flower:

@AM!R!
چهارشنبه 28 اردیبهشت 1384, 01:37 صبح
دوستان ممنون.
امتحان می کنم و نتیجه را به اطلاع شما می رسانم.
:flower: :flower: :flower: :flower: :flower:

Morteza Manafpour
چهارشنبه 28 اردیبهشت 1384, 10:44 صبح
دوست عزیز آیا می شد سطر دوم و سوم رو حذف کرد و به جای آن اینجوری نوشت؟

with DataEnvironment.rstblname
if(state=adstateopen)then
.requary
end with
datareport1.show
این که خطا می‌ده و کاملا واضحه که خطا می‌ده چون بعد شرط هیچ دستوری نوشته نشده

@AM!R!
پنج شنبه 29 اردیبهشت 1384, 00:54 صبح
سلام دوستان
آقای صادقی، از PDF ی که گذاشتین ممنون. من از یک SUB که در اون بود استفاده کردم ولی خطا داره و صفحه گزارش را با یک پیغام خطا خالی باز می کنه. کدی که نوشتم این بود:


Private Sub mnudailyreports_Click()
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Set conn = New ADODB.Connection
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\coffeenetbank.mdb;" & _
"Persist Security Info=False"
Set rs = conn.Execute("select * from user1 where has>0 and date=date()")
Set DataReport1.DataSource = rs
DataReport1.Show
End Sub


و پیغام خطایی با این مظمون:
Arguments are of the wrong type, are out of acceptable rang, or are in conflict with one another

از اون کدهای بالایی هم استفاده کردم ولی اونم نشد.

ببخشید. :oops: :flower: :flower:

@AM!R!
شنبه 31 اردیبهشت 1384, 14:34 عصر
سلام ...
کسی نبود یک جواب کوچولو به ما بده.
منتظرم. :تشویق:

@AM!R!
یک شنبه 01 خرداد 1384, 18:13 عصر
آقایان و خانم ها سلام

کسی جواب نمیده ما هم مجبور میشیم خودمون به خودمون جواب بدیم.
تا موضوع داغ بمونه
من تا جوابم و نگیرم این موضوع رو تازه می کنم.
حالا ببینید. :mad: :mad: :mad:

sadegi
دوشنبه 02 خرداد 1384, 12:21 عصر
دوست عزیز دستور select یکم اشکال داره
یکم دقت کنی میفهمی
:flower: :flower: :flower:

@AM!R!
دوشنبه 02 خرداد 1384, 13:13 عصر
سلام
جناب آقای صادقی از راهنمایی شما ممنون. :flower:
مشکل به روز رسانی DataEnvironment حل شد.( البته اصلا قید DataEnvironment را زدم)
من با استفاده از کدهایی که در فایل PDF بود. بدون استفاده از DataEnvironment فرم Datareport را به بانک وصل کردم. و این خود باعث به روز رسانی DataEnvironment شد.
مشکلی که حالا به وجود آمده این است که کدهای موجود فقط در قسمت Section1 فرم گزارش کار می کند. حال اگر من بخواهم در قسمت Section5 یک برچسب قرار دهم که مجموع یک فیلد عددی را در خود قرار دهد، چکار باید بکنم.
باز هم ممنون. :flower:

sadegi
دوشنبه 02 خرداد 1384, 20:04 عصر
دوست عزیز درسته که اون کد که دارین ازش استفاده میکنید مشکلتون رو حل میکنه ولی پیشتهاد میکنم که از DataEnvironment استفاده کنید
درسته که تنظیماتش یکم سخته ولی اگه چند بار ازش استفاده کنید برتون راهت میشه و میتونید ار امکاناتش هم استفاده کنید
مثلا شما میتونید بعد از اینکه تونستید بدرستی تنظیمش کنید از command گرفته و اونو در datareport در قسمت section1 رها کند(همون درگ کردن و رها کردن ) میبینید که به سادگی تمامی کارهای لازم برای انجام ارتباط با Table به صورت اتوماتیک برای شما انجام داده شده است
و در مورد اون دستور select فکر کنم اینجوری بهتره

SELECT * FROM mytable WHERE age>10 and date =#" & Date & "#"
که در مثال بالا date ( از نوع Date) و age دو تا از فیلدهای جدول mytable هستند

@AM!R!
پنج شنبه 05 خرداد 1384, 17:06 عصر
نشد که بشه
نمیدونم کجای کار مشکل داره :(

sadegi
پنج شنبه 05 خرداد 1384, 18:49 عصر
دوست عزیز اگه امان داره یه نمونه از کارت رو بذار ببینم که اشکال کار از کجاست
:flower: :flower: :flower:

@AM!R!
پنج شنبه 05 خرداد 1384, 21:03 عصر
Private Sub mnu_daily_reports_Click()
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Set conn = New ADODB.Connection
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\coffeenetbank.mdb;" & _
"Persist Security Info=False"
Set rs = conn.Execute("SELECT * FROM user1 where has>0 and date= #" & Date & "#")
Set DataReport1.DataSource = rs
End Sub

البته در صفحه قبل این کد را گذاشته ام.
مشکل از خود دستور Select نیست چون هرگاه یک select ساده هم بجای آن قرار می دهم باز هم همان پیغام خطا را که در صفحه قبل نوشتم نشان می دهد.
فکر می کنم، اشکال از آنجا باشد که: من Datasource را به صورت دستی و از پنجره خصوصیات برای فرم گزارش تنظیم کرده ام. خوب این بطور طبیعی درست است زیرا در حالت عادی باید ارتباطی بین فرم گزارش و محیط داده برقرار باشد. اما حالا در این کد می خواهم دوباره این کار را انجام دهم که پیغام خطا می دهد.
نمی دانم تا چه اندازه متوجه شدید.
به هر حال از این که موضوع را دنبال می کنید، ممنون.

sadegi
جمعه 06 خرداد 1384, 11:12 صبح
دوست عزیز یه نمونه برات میزارم انشا الله که مشکلت حل بشه
کار خاصی نکردم .از کد خودتون با تغییر خیلی کمی استفاده کردم تا بهتر متوجه بشید
یکم دقت کنی براحتی متوجه اشکالت میشی
در ضمن چرا data source رو به صورت دستی تنظیم میکنی؟
مگه تو کدت اونو تنظیم نمیکنی؟
:flower: :flower: :flower:

@AM!R!
جمعه 06 خرداد 1384, 22:51 عصر
ممنون از مثالی که زدین.
اما اگه به همین مثال هم Dataenvironment اضافه کنیم و اون رو هم تنظیم کنیم. باز هم همون مشکل پیش میاد. به هر حال من dataenvironment رو از برنامم حذف کردم. و تنظیمات رو با کد جدید انجام دادم و مسئله حل شد. :flower:

اما آقای صادقی من از یک Sub که از همین سایت برداشتم (و یادم نیست مال کی بود) تاریخ میلادی رو به شمسی تبدیل می کنم. ولی اشکالی که داره ماه رو درست حساب نمی کنه. و بقیه عناصر تاریخ رو درست حساب می کنه. لطفا یه نگاهی بهش بکن من هر چی سعی کردم نفهمیدم چی به چیه.
ممنون. :flower:




Function Shamsi(Optional date1 As String, Optional SmallDate1 As Boolean) As String
'================================================= ===
Dim d, p, W, mon, mM, ym, U, v, rp, x, I, ys, ms, dM, p1, d1, ds, DateShamsi
d = Array(20, 19, 20, 20, 21, 21, 22, 22, 22, 22, 21, 21)
p = Array(11, 12, 10, 12, 11, 11, 10, 10, 10, 9, 10, 10)
W = Array("í˜ÔäÈå", "ÏæÔäÈå", "Óå ÔäÈå", "åÇÑÔäÈ&arin g;", "äÌ ÔäÈå", "ÌãÚå", "ÔäÈå")

If SmallDate1 = True Then
mon = Array("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12")
Else
mon = Array("ÇÓÝäÏ", "Èåãä", "Ïí", "ÂÐÑ", "ÂÈÇä", "ãåÑ", "ÔåÑíæÑ", "ãÑÏÇÏ", "ÊíÑ", "ÎÑÏÇÏ", "ÇÑÏíÈå&Ocir c;Ê", "ÝÑæÑÏí&auml ;")
End If

If date1 = "" Then date1 = DateAdd("d", 1, Date)

dM = Day(date1)
mM = Month(date1)
ym = Year(date1)
U = 0
rp = 0
If (ym Mod 4) = 0 Then U = 1
If ((ym Mod 100) = 0 And (ym Mod 400) <> 0) Then U = 0
ys = ym - 622
x = ys - 22
x = x Mod 33
If ((x Mod 4) = 0 And x <> 32) Then rp = 1
I = Not (rp - 2) + Not (U - 2) * 2
x = 0
If (I = 0 And mM = 3) Then x = 1
If I = 0 Then I = 3
ms = (9 + mM) Mod 13
If ms < 10 Then ms = ms + 1
d1 = d(mM - 1)
If (I = 1 And mM > 2) Then d1 = d1 - 1
If (I = 2 And mM < 3) Then d1 = d1 - 1
p1 = p(mM - 1)
If (I = 1 And mM > 2) Then p1 = p1 + 1
If (I = 2 And mM < 4) Then p1 = p1 + 1
If (dM > 0 And dM <= d1) Then
ds = p1 + dM + x - 1
x = 1
Else
ds = dM - d1
ms = ms + 1
If ms = 13 Then ms = 1
x = 2
End If
If ((mM = 3 And x = 2) Or mM > 3) Then ys = ys + 1
ds = Str(ds)
If Len(Trim(ds)) = 1 Then ds = "0" + Trim(ds)
If SmallDate1 = True Then
' ÇÑ ÓÇá Èå ÕæÑÊ Ïæ ˜ÇјÊÑ? ã?ÎæÇå?Ï ÎØ Ò?Ñ ÑÇ ÇÒ ÍÇáÊ ˜ÇãäÊ ÏÑ ÂæÑ?Ï
' Shamsi = Mid(Trim(Str(Ys)), 3, 2) + "/" + Trim(mon(Ms - 1)) + "/" + Trim(Ds)
' ÇÑ ÓÇá Èå ÕæÑÊ åÇÑ ˜ÇјÊÑ? ã?ÎæÇå?Ï ÎØ Ò?Ñ ÑÇ ÇÒ ÍÇáÊ ˜ÇãäÊ ÏÑ ÂæÑ?Ï
Shamsi = Trim(Str(ys)) + "/" + Trim(mon(ms - 1)) + "/" + Trim(ds)
Else
Shamsi = W(Weekday(Date) - 1) + " " + Str(ds) + " " + mon(ms - 1) + " " + Str(ys)
End If
End Function

sadegi
شنبه 07 خرداد 1384, 13:23 عصر
من با استفاده از یک Data Environment یک Data Report در برنامه ساخته ام.
تا از طریق آن از یکی از جدول های بانکم گزارش بگیرم. ولی وقتی یک رکورد به جدول اضافه می کنم (به غیر از رکورد اول) و سپس به سراغ Data Report می روم اثری از این رکورد جدید نیست. برنامه را از حالت اجرا به حالت طراحی برده و دوباره اجرا می کنم. سپس رکوردی را که آخرین بار وارد کرده بودم در Data Report می بینم.
از دوستانی که راه حلی برای این مشکل دارند . تقاضا دارم مرا یاری دهند.
دوست عزیز به این کد یه نگاهی بنداز
دیگه باید مشکلت حل بشه( :mrgreen: )

sadegi
شنبه 07 خرداد 1384, 16:10 عصر
در ضمن من هم مثل شما از اون کدی که نوشتی سر در نیاوردم (خیلی قرو قاطیه)

:oops: :oops: :oops: :sorry: :sorry: :sorry:

@AM!R!
یک شنبه 15 خرداد 1384, 01:16 صبح
ممنون :flower:

fireman
چهارشنبه 23 آذر 1384, 23:02 عصر
در حال بررسی