ورود

View Full Version : اصلاح کد : فراخوانی اطلاعات از SQL به Listbox



mhamedm2008
شنبه 08 شهریور 1393, 11:11 صبح
با سلام
من از کد زیر برای فراخوانی اطلاعات به درون listbox از SQL استفاده می کنم.
ولی نمی دونم چرا هیچ اطلاعات در لیست باکس نمایش نمیده.
مشکل از کجاست؟


Public Cnxn As ADODB.Connection
Public rst As ADODB.Recordset
Set Cnxn = New ADODB.Connection
strCnxn = "Provider='SQLOLEDB';Data Source='.';" & _
"Initial Catalog='test'; Trusted_Connection=Yes;"
Cnxn.Open strCnxn
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
Dim strsql As String
strsql = "select * from faktorha"
rst.Open strsql, Cnxn, adOpenDynamic, adLockOptimistic, 1
With Me.list1
.RowSourceType = "Table/Query"
.RowSource = strsql
.Requery
End With

amirzazadeh
شنبه 08 شهریور 1393, 19:56 عصر
سلام
كد رديف 13 رو به اين شكل اصلاح كنيد:
.RowSourceType = "Table/View/StoredProc"

mhamedm2008
شنبه 08 شهریور 1393, 22:44 عصر
متاسفانه باز هم خالیه.هیچ اطلاعاتی نشون نمیده و هیچ ارروی هم نمی گیره:ناراحت:

mhamedm2008
دوشنبه 10 شهریور 1393, 19:02 عصر
لطفا کمک کنید.چی کار کنم؟:ناراحت:

amirzazadeh
دوشنبه 10 شهریور 1393, 19:32 عصر
فايلتون رو به همراه ديتابيس mdf اپلود كنيد.

mhamedm2008
دوشنبه 10 شهریور 1393, 23:41 عصر
خیلی ممنون
بفرمایید

amirzazadeh
سه شنبه 11 شهریور 1393, 08:50 صبح
سلام
فايل Mdf شما با sql 2000,2005,2008 تست كردم اتچ نميشه ولي به هر حال نرم افزار شما با اكسس 2007 تهيه شده (پسوند accdb) نه با اكسس پروجكت(adp) بنابراين
.RowSourceType = "Table/Query"
مشكل ديگه اي تو كدها نديدم

فقط يك سئوال آيا جداول رو به اسكيوال لينك كرديد؟

mhamedm2008
سه شنبه 11 شهریور 1393, 16:01 عصر
SQL من ورژن 2014 هست.شاید بخاطر همین اتچ نمیشه.
نه.تیبل ها رو لینک نکردم.آیا باید لینک کنم؟؟
پس چرا چیزی نشون نمیده؟؟:ناراحت:

amirzazadeh
سه شنبه 11 شهریور 1393, 18:27 عصر
SQL من ورژن 2014 هست.شاید بخاطر همین اتچ نمیشه.
نه.تیبل ها رو لینک نکردم.آیا باید لینک کنم؟؟
پس چرا چیزی نشون نمیده؟؟:ناراحت:
سلام
اگر جداول لينك نباشه ميتونيد از ركورد ست براي پر كردن ليست باكس استفاده كنيد:
برنامه شما رو با ديتابيس PUBS ست كردم.نمونه اصلاح شده:

mhamedm2008
سه شنبه 11 شهریور 1393, 21:05 عصر
بعد از اینکه پارامتر ها را با دیتابیس تنظیم کردم و فرم سرچ رو باز می کنم بعد از چند ثانیه اکسس هنگ می کنه.فکر کنم توی حلقه بینهایت گیر میکنه.
مشکل از کدوم قسمته؟؟

amirzazadeh
چهارشنبه 12 شهریور 1393, 17:24 عصر
سلام
در محيط vba كدها رو علامت گذاري كنيد (trace) بعد فرم رو لود كنيد و مرحله به مرحله جلو بريد ببينيد تو كدوم قسمت گير ميكنه . (ممكنه move next رو تو كدها جا انداخته باشين).
.....................
موفق باشيد

mhamedm2008
چهارشنبه 12 شهریور 1393, 17:57 عصر
سلام
توی حلقه بی نهایت گیر می کنه.دستی انجام می دهم دونه دونه رکورد ها رو اضافه می کنه.ولی Loop Until rst.EOF باشه هنگ می کنه.در ضمن اگر دستور تکرار رو بر می دارم از کد ها فقط ردیف اول را درج می کنه


مشکل رو فهمیدم.چون توی این جدولم 8 ستون و 700 رکورد دارم هنگ میکنه.باید چی کار کنم؟؟ این که خیلی بده.من همین لیست باکس رو توس اکسس با 22000 رکورد داشتم و سرچ هم می کردن بدون لحظه ای پرش لیست باکس requry می شد.
تعداد رکورد را به 100 تغییر دادم و اطلاعات رو میاره ولی وقتی لیست باکس رو به پایین حرکت میده با پرش حرکت می کنه.
راهش چیه؟؟

mhamedm2008
شنبه 12 مهر 1393, 10:15 صبح
سلام
اگر جداول لينك نباشه ميتونيد از ركورد ست براي پر كردن ليست باكس استفاده كنيد:
برنامه شما رو با ديتابيس PUBS ست كردم.نمونه اصلاح شده:

با سلام
یک سوال در خصوص این نمونه دارم و آن هم اینکه در زمانی که لیست باکس من از دریتای خود را از اکسس می گرفت، باکد زیر اطلاعات داخل آن را دریافت می کردم
می خواستم ببنم حالا باید چه جوری این اطلاعات را در حالت valuelist هست بگیریم
چون دیگه این کد کار نمی کنه
با تشکر

Private Sub List1_DblClick(Cancel As Integer)
Text45 = list1.Column(3)
End Sub


مشکل حل شد