ورود

View Full Version : سوال: نحوه ارتباط از طریق ADODB.Connection بافایل خارجی



M.Javad
جمعه 14 تیر 1387, 17:18 عصر
با سلام خدمت همه دوستان
من چطوری می تونم از توی اکسس با ایجاد یک کانکشن و با استفاده از رکورد ست اطلاعات یک جدولی رو در یک فایل دیگه از اکسس ببینم؟

مهدی قربانی
شنبه 15 تیر 1387, 01:49 صبح
سلام
شما مي تونيد با استفاده از OpenDatabase به خواسته خودتون برسيد فايلهاي ضميمه داراي قابليت ارتباط و انتقال اطلاعات هستند براي جلوگيري از خطا بهتره فايل connection1 ‌رو در C كپي كنيد .

Private Sub Command0_Click()
On Error GoTo Err_Command0_Click
Dim db As DAO.Database
Dim dbs As DAO.Database
Dim rst1 As DAO.Recordset
Dim rst As DAO.Recordset
Dim I As Integer

Set db = OpenDatabase("C:\Connection1.mdb")
Set dbs = CurrentDb

Set rst = db.OpenRecordset("table1")
Set rst1 = dbs.OpenRecordset("table1")

rst.MoveLast
rst.MoveFirst

For I = 1 To rst.RecordCount
rst1.AddNew
rst1.Fields("a").Value = rst.Fields("a").Value
rst1.Fields("b").Value = rst.Fields("b").Value
rst1.Fields("c").Value = rst.Fields("c").Value
rst1.Update
rst.MoveNext

Next I
MsgBox "ÊÚÏÇÏ" & " " & rst.RecordCount & " " & "ÑßæÑÏ ãäÊÞá ÑÏíÏ" _
, vbMsgBoxRight + vbInformation, "ÇäÊÞÇá ÇØáÇÚÇÊ"

rst.Close
rst1.Close
db.Close
dbs.Close

Set rst = Nothing
Set rst1 = Nothing
Set db = Nothing
Set dbs = Nothing
Exit_Command0_Click:
Exit Sub

Err_Command0_Click:
If Err.Number = 3024 Then
MsgBox "ãÓíÑ ÏíÊÇÈíÓ ãÞÕÏ ÕÍíÍ äíÓÊ áØÝÇð ãÓíÑ ÑÇ ÇÕáÇÍ äãÇÆíÏ" _
, vbExclamation + vbMsgBoxRight, "ÎØÇí ãÓíÑ"

Else
MsgBox Err.Description & Err.Number
Resume Exit_Command0_Click
End If
End Sub

M.Javad
شنبه 15 تیر 1387, 15:19 عصر
ممنون از راهنمایی ات
ولی یک سوال دیگه :
اگه فایلی رو که بخوام بهش وصل بشم پسورد داشته باشی چی ، چطوری باید بهش Connect بشم؟

مهدی قربانی
شنبه 15 تیر 1387, 16:56 عصر
سلام
اين خط رو به اين شكل تغيير بديد


Set db = OpenDatabase("C:\Connection1.mdb")

به اينصورت
بجاي عبارت YourPassword رمز عبور مورد نظرتون رو جايگزين كنيد

Set db = OpenDatabase("C:\Connection1.mdb", False, False, ";PWD=YourPassword")

M.Javad
یک شنبه 16 تیر 1387, 10:43 صبح
رهنمایی اتون خیلی به دردم خورد
ولی مشکل اصلی من سر جاش هستش
من می خواهم اطلاعاتی رو که در یک جدول توی یک فایل دیگه هست رو ببینم ولی نمی خواهم حجم فایل جاری خودم زیاد بشه چون در مورد مثال شما اطلاعات از فایل خارجی به فایل جاری کپی می شن و لازم به ذکره که من می خوام بعضی از رکورها رو ویرایش و حذف کنم که این کار عملاً با مثال شما کمی طولانی می شه .
اگه را ه حل مناسبی دارید ممنون می شم باز هم منو راهنمایی کنید

مهدی قربانی
یک شنبه 16 تیر 1387, 11:42 صبح
سلام
دوست عزيز اولاً كه حجم برنامه شما نيست كه زياد ميشه بلكه اين حجم قاعداً روي Memory دستگاه قرار ميگيره شما فرموديد كه ميخواين اطلاعات جدول فايل خارجي رو بريزيد در يك ركوردست بنابراين وقتي بحث ركوردست پيش مياد يقيناً حافظه هم اشغال ميشه حالا شما به هر طريقي كه بخواين اين ركوردست رو داشته باشين الزاماً بايداز حافظه دستگاه استفاده كنيد منتها اگر اين ركوردست فيلتر بشه ( گزينش ركوردهاي خاص كه حائز شرط مورد نظر هستن ) خوب اونوقت حجم كمتري از حافظه اشغال ميشه و لازم نيست شما كل ركوردهاي جدول رو بريزيد روي حافظه البته چنانچه حجم اطلاعات جدول مورد نظر زياد باشه اين تفاوت پيش مياد .


لازم به ذکره که من می خوام بعضی از رکورها رو ویرایش و حذف کنم که این کار عملاً با مثال شما کمی طولانی می شه .

منظورتون از طولاني شدن دقيقاً چيه بيشتر توضيح بديد ضمناً شما در پست اول فرموديد كه مي خواين اطلاعات جدول خارجي رو ببينيد و اشاره اي به اديت يا حذف نكرديد بنده هم به همين خاطر به عنوان مثال عمليات اتقال اطلاعات رو براي بهتر ملموس شدن شبيه سازي كردم .

مهدی قربانی
سه شنبه 18 تیر 1387, 23:06 عصر
سلام
دوست گرامي نفرموديد منظورتون از طولاني شدن چي بود ؟ منتظر توضيحات بيشتر شما هستم .

M.Javad
چهارشنبه 19 تیر 1387, 15:18 عصر
با تشکر مشکلم حل شد