ورود

View Full Version : استفاده از یک MDB در یک MDB دیگر



شاپرک
یک شنبه 06 شهریور 1384, 07:41 صبح
میشه در یک برنامه اکسس یک فایل اکسس دیگر فراخوانی و از فیلد های جداول آن استفاده کرد ؟

محمدحسام
یک شنبه 06 شهریور 1384, 08:30 صبح
میتوانید جداول بانک دیگر را لینک کنید .

file -> get external data -> link tables

شاپرک
یک شنبه 06 شهریور 1384, 12:23 عصر
آخه من نمیخوام اصلا کاربر درگیر باشه می خوام توی برنامه یک button browse برای انتخاب فایل اکسس مورد نظر بذارم که کاربر فایل رو انتخاب کنه و بعد برنامه اجرا بشه.....
امکانش هست؟

sarami
دوشنبه 07 شهریور 1384, 01:32 صبح
شما میتونین از یه متغیر از نوع database استفاده کنین یعنی یه متغیر از این نوع ایجاد و سپس اون متغیر رو با database مورد نظر set کنین حال بعد از set کردن میتونین به کلکسیون tabledef و guerydef ویا سایر اشیاء اون database دسترسی داشته باشین

شاپرک
دوشنبه 28 شهریور 1384, 08:32 صبح
آقای صارمی شما مثالی در این مورد دارید ؟

mohammadgij
دوشنبه 28 شهریور 1384, 09:56 صبح
Dim db As Database
Dim rstdaoSelect As DAO.Recordset
Set db = CurrentDb
Set rstdaoSelect = dbs.OpenRecordset("tblTest")



به جای CurrentDb اسم DataBase مورد نظر رو بنویس.
نمی دونم چه قدر درسته. اما دوستان Help خود Access هم خیلی خوبه.

sarami
چهارشنبه 30 شهریور 1384, 04:39 صبح
dim db as database
set db= opendatabase("test.mdb")8
db.tabledef.index(1)8
بجای 1 میتونین نام table رو داخل "" وارد کنین
اعداد 8 رو در انتها برای درست نشان دادن کد گذاشتم حذفش کنین
جالبه بدونین شما حتی میتونین از طریق کد نویسی DATABASE جدید بسازین داخلش TABLE یا QUERY اضافه کنین و هزار تا کار دیگه

شاپرک
سه شنبه 05 مهر 1384, 10:07 صبح
حالا چطوری از فیلد های Table هاش استفاده کنم ؟

MM_Mofidi
سه شنبه 05 مهر 1384, 22:04 عصر
اگر قصد دارید تمام جداول و مشخصات آنها را استفاده کنید به نظر من راه ساده تر استفاده از Transferdatabase از شیئ DOCMD است.
همین کار را هم با استفاده از DOMenuItem میتوانید بکنید به نظرم هم سریعتره و هم راحتتر(کد کمتری لازم داره)

شاپرک
چهارشنبه 06 مهر 1384, 07:33 صبح
ببخشید من با چیزی که گفتید آشنایی ندارم اگه امکان داره یک مثال ضمیمه کنید یا بیشتر توضیح بدید .
در ضمن من نمی خوام از همه جداول استفاده کنم از بعضی از جداول و بعضی فیلد هاشون

sarami
پنج شنبه 07 مهر 1384, 12:45 عصر
ببین شاپرک جان بهترین کار اینه که یه recordset ازش بسازی و به یه subform یا فرم برای نمایش اطلاعات پاس بدی اینجوری کاربر احصاص نمیکنه که داره با یه database دیگه کار میکنه

MM_Mofidi
جمعه 08 مهر 1384, 04:31 صبح
این تابع import(or Export) جداول یک دیتابیس با همه relation هاش
احتمالا بدرد دوستمون نخوره ولی شاید بقیه بخوان استفاده کنند.من خودم برای بروز رسانی برنامه ها استفاده میکنم.


Function Export_All_Tabels(ByVal MDB_FileNamePath As String, _
Optional ByVal RelationSh As Boolean = True, _
Optional ByVal SystemTables As Boolean = False, _
Optional ByVal OverWriteAll As Boolean = True) As Boolean

On Error GoTo Export_All_Tabels_Err_Handler
'*************** Init ************
Export_All_Tabels = False
'*********************************
Dim Des_Name As String
Dim AllTableDefs As TableDefs
Dim MyDb As Database
Dim LErrAction As VBA.VbMsgBoxResult

Set MyDb = CurrentDb
Set AllTableDefs = MyDb.TableDefs

For I = 0 To AllTableDefs.Count - 1
ans = vbNullString
If (AllTableDefs(I).Attributes = 0) Or SystemTables Then _
ans = Export_To_External_Database(MDB_FileNamePath, AllTableDefs(I).name, _
AllTableDefs(I).name, acExport, acTable, OverWriteAll)
If Len(ans) > 0 Then
Debug.Print AllTableDefs(I).name & vbTab & "Exported Correctly as " & ans
Else
Debug.Print "Some Error Accured on Exporting" & vbTab & AllTableDefs(I).name
End If
Next
MyDb.Close
'If RelationSh Then Set MyDb.CreateRelation = CurrentDb.Relations
'For j = 0 To AllTableDefs.Count - 1
If RelationSh Then
Set MyDb = OpenDatabase(MDB_FileNamePath)
Dim rel As Relation
Dim L As Field
For I = 0 To CurrentDb.Relations.Count - 1
Set rel = MyDb.CreateRelation

rel.name = CurrentDb.Relations(I).name
rel.Table = CurrentDb.Relations(I).Table
rel.ForeignTable = CurrentDb.Relations(I).ForeignTable
rel.Attributes = CurrentDb.Relations(I).Attributes
For j = 0 To CurrentDb.Relations(I).Fields.Count - 1
Set L = rel.CreateField
L.name = CurrentDb.Relations(I).Fields(j).name
L.ForeignName = CurrentDb.Relations(I).Fields(j).ForeignName
rel.Fields.Append L
Next
MyDb.Relations.Append rel
Debug.Print "Crete relation from " & CurrentDb.Relations(I).Table & _
vbTab & "To " & CurrentDb.Relations(I).ForeignTable
Next
MyDb.Close
End If

If LErrAction <> vbIgnore Then Export_All_Tabels = True Else Export_All_Tabels = False
Exit Function
Export_All_Tabels_Err_Handler:
ans = MsgBox(Err.Number & vbCrLf & Err.Description & vbCrLf & "Do you want to Try Again?" _
, vbCritical + vbAbortRetryIgnore)
Select Case ans
Case vbRetry
LErrAction = vbRetry
Resume
Case vbIgnore
LErrAction = vbIgnore
Resume Next
Case vbAbort
LErrAction = vbAbort
Export_All_Tabels = vbNullString
Exit Function
Case Else
LErrAction = vbAbort
Export_All_Tabels = vbNullString
Exit Function
End Select
End Function

نمیدونم شاید ایراد داشته باشه من که تا حالا مشکلی پیدا نکردم.
اگر مشکلی بود بگید اصلاح کنم.