PDA

View Full Version : میشه نتیجه دو دستور SQL رو تو یک دیتا گرید نشون داد



m_vb1386
یک شنبه 23 تیر 1387, 08:26 صبح
Private Sub Command1_Click()
On Error Resume Next
Dim ch2 As String
ch2 = App.Path & "\sum.mdb"

Form1.Adodc2.ConnectionString = "provider=microsoft.jet.oledb.4.0;" & _
"persist security info=false;" & _
"data source=" & ch2
Dim ch3 As String
ch3 = App.Path & "\sum.mdb"

Form1.Adodc1.ConnectionString = "provider=microsoft.jet.oledb.4.0;" & _
"persist security info=false;" & _
"data source=" & ch3

Form1.Adodc2.RecordSource = "SELECT sum(tedad1)" & _
"FROM UNIQTEDAD;"
Form1.Adodc1.RecordSource = "SELECT sum(tedad2)" & _
"FROM UNIQTEdad;"


Set Form1.DataGrid1.DataSource = Adodc1
Set Form1.DataGrid1.DataSource = Adodc2
End Sub
این کد اطلاعات رو تو ردیف اول گرید نشون میده اگه میشه اون رو اصلاح کنیدکه نتیجه این دو دستو رو تو دو ردیف مجزا ممنون

یکی جواب ما رو بده

Mbt925
یک شنبه 23 تیر 1387, 13:44 عصر
نتیجه ی این دو دستور رو نمی تونید به این صورت در دو ردیف نشون بدید.

یه راه حل دیگه وجود داره که نتیجه رو در دو فیلد (یک رکورد) نشون میده:





Form1.Adodc1.RecordSource = "SELECT sum(tedad1) as sum1,sum(tedad2) as sum2 FROM UNIQTEDAD"

Set Form1.DataGrid1.DataSource = Adodc1

majjjj
یک شنبه 23 تیر 1387, 13:49 عصر
اقا محسن من هم یک نمونه مثل مشکل ایشون دیدم یک برنامه مربوط به امار ایرانسل که بر اساس شهرهای یک استان امار ارایه میکرد و هرکدوم از استانها رو تو ردیف های پشت سرهم تو گرید نشون میداد

mehranFX
یک شنبه 23 تیر 1387, 13:59 عصر
برای ترکیب نتایج کوئری های مختلف در مورد دستور UNION در SQL مطالعه کنید.

Mbt925
یک شنبه 23 تیر 1387, 14:00 عصر
محدودیتی که وجود داره ، به علت استفاده از DataGrid اه.
شما می تونید از گریدهای دیگه استفاده کنید، فقط باید این ردیف ها رو بصورت دستی اضافه کنید نه با اتصال مستقیم به بانک.

m_vb1386
یک شنبه 23 تیر 1387, 14:12 عصر
برای ترکیب نتایج کوئری های مختلف در مورد دستور UNION در SQL مطالعه کنید

محدودیتی که وجود داره ، به علت استفاده از DataGrid اه.
شما می تونید از گریدهای دیگه استفاده کنید، فقط باید این ردیف ها رو بصورت دستی اضافه کنید نه با اتصال مستقیم به بانک

اگه میشه یک نمونه بزارین
اون کدی که مدیر بخش گزاشتن تو اکسس جواب میده اما برای vb خطا میده

Mbt925
یک شنبه 23 تیر 1387, 14:25 عصر
نمونه ی زیر کنترل دستی گرید رو نشون میده:

shaghaghi
یک شنبه 23 تیر 1387, 17:24 عصر
سلام
من هم همانند دوستمون mehranFX استفاده از دستور UNION را، برای ترکیب دو Select با هم را توصیه می کنم

m_vb1386
سه شنبه 25 تیر 1387, 07:39 صبح
سلام
من هم همانند دوستمون mehranFX استفاده از دستور UNION را، برای ترکیب دو Select با هم را توصیه می کنم

لطفا یکم در مورد اینی که گفتین توضیح بدین

shaghaghi
سه شنبه 25 تیر 1387, 11:32 صبح
لطفا یکم در مورد اینی که گفتین توضیح بدین
ببین دوست عزیز، شما هر جا که با دستورات sql سر رو کار دارید، چه زمانیکه داخل محیط کوئری نویسی هستید، چه زمانیکه یک دستور sql را در محیط کد نویسی داخل متغییر قرار می دهید، این امکان را دارید که چندین دستور select را با شروط و منابع متفاوت از هم، با شرط برابری تعداد فیلدهای select شده با هم اجتماع کنید:


Select Field1 AS Code From Table5
Union
Select Id As Code From Table2

توضیح اینکه با کمک دستور AS از نام های مجازی برای همنام سازی فیلدها استفاده کنید

m_vb1386
سه شنبه 25 تیر 1387, 12:27 عصر
Private Sub Command1_Click()
On Error Resume Next
Dim ch2 As String
ch2 = App.Path & "\sum.mdb"

Form1.Adodc2.ConnectionString = "provider=microsoft.jet.oledb.4.0;" & _
"persist security info=false;" & _
"data source=" & ch2
Dim ch3 As String
ch3 = App.Path & "\sum.mdb"

Form1.Adodc1.ConnectionString = "provider=microsoft.jet.oledb.4.0;" & _
"persist security info=false;" & _
"data source=" & ch3

Form1.Adodc2.RecordSource = "SELECT sum(tedad1)" & _
"FROM UNIQTEDAD;"
union
Form1.Adodc1.RecordSource = "SELECT sum(tedad2)" & _
"FROM UNIQTEdad;"


Set Form1.DataGrid1.DataSource = Adodc1
Set Form1.DataGrid1.DataSource = Adodc2
End Sub

این رو نوشتم ازش ایراد گرفت لطفا کدش رو اصلاح کنید ممنون

shaghaghi
شنبه 29 تیر 1387, 07:26 صبح
Private Sub Command1_Click()

Dim ch3 As String
ch3 = App.Path & "\sum.mdb"

Form1.Adodc1.ConnectionString = "provider=microsoft.jet.oledb.4.0;" & _
"persist security info=false;" & _
"data source=" & ch3

Form1.Adodc1.RecordSource = "SELECT sum(tedad1) FROM UNIQTEDAD UNION SELECT sum(tedad2) FROM UNIQTEdad;"

Set Form1.DataGrid1.DataSource = Adodc1
End Sub

m_vb1386
شنبه 29 تیر 1387, 07:55 صبح
حالا اگه بخواهم یک چیزی شبیه به این تو گریدم داشته باشم چکار کنم
علی 20
رضا 25
محمد 16

یعنی اسمها تو یک ستون و تعداد اسامی تو یک ستون دیگه باشه چکار کنم

کسی بلد نیست

Mbt925
چهارشنبه 02 مرداد 1387, 16:41 عصر
یه روش ساده :

majjjj
پنج شنبه 03 مرداد 1387, 07:46 صبح
این هم یکی دیگه با اجازه Mbt925 (http://barnamenevis.org/forum/members/mbt925.html)

Mbt925
پنج شنبه 03 مرداد 1387, 21:24 عصر
این هم یکی دیگه

قسمت زیر کافیه:






SELECT First(Name) AS نام, Count(Name) AS تعداد From Table1 GROUP BY Name"