PDA

View Full Version : مشکل در backup ( پشتیبان ) از فایل اکسس با استفاده از (Application.FileDialog(msoFileDialogSaveAs



hamid-nice
یک شنبه 06 اسفند 1391, 04:10 صبح
سلام به همه دوستان

1- در فایل ضمیمه یک فایل backup گذاشتم که درست کار میکنه ولی وقتی در پنجره باز شده می خوام اسم فایل را چیز دیگری بنویسم عملا فایلی را ذخیره نمی کنه

2- این فقط از جداول backup می گیره چطور می شه از کل آن Bachup بگیره ؟

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

با تشکر

hamid-nice
دوشنبه 07 اسفند 1391, 11:03 صبح
سلام

کسی نیست که کمکی کتد؟ اگه این فایل را هم نمی شه درست کرد یک فایل که این هدف را برآورده کنه بدید

با تشکر

Abbas Amiri
دوشنبه 07 اسفند 1391, 18:38 عصر
سلام
برای انتخاب محل تعیین شده در FileDialog کد زیررا جایگزین کنید


Private Sub btmBackup_Click()
' Backup
' Requires reference to Microsoft Office 12.0 Object Library.
On Error GoTo err
Dim fB As FileDialog
Dim Title As String
Dim rpt As Report

Set fB = Application.FileDialog(msoFileDialogSaveAs)
With fB
.AllowMultiSelect = False
.Title = "Save File"
.InitialFileName = CurrentProject.Path & "\" & CurrentProject.Name & "_Backup.accdb"

If .Show = True Then
'ExpObj2ExtDb .SelectedItems(1)
SaveAsText 6, "", .SelectedItems(1)

MsgBox "Databas has been backup", vbInformation
Else
MsgBox "No file was selected"
End If
End With
Exit Sub
err:
Beep
End Sub
)


وبرای ذخیره تمام اشیا بانک اطلاعاتی تاپیک زیر مثال خیلی خوبی دارد.
http://www.devhut.net/2012/09/27/ms-access-vba-export-database-objects-to-another-database/

hamid-nice
سه شنبه 08 اسفند 1391, 16:38 عصر
سلام

با تشکر لینکی که گذاشتید با استفاده از دستور Transferdatabase acexport هست ولی نمی خوام از این دستور استفاده کنم می خوام با همین دستور FileDialog نیز کل اشیاء ذخیره بشه
آیا اصلا امکان پذیر هست ؟

Abbas Amiri
سه شنبه 08 اسفند 1391, 18:24 عصر
سلام

با تشکر لینکی که گذاشتید با استفاده از دستور Transferdatabase acexport هست ولی نمی خوام از این دستور استفاده کنم می خوام با همین دستور FileDialog نیز کل اشیاء ذخیره بشه
آیا اصلا امکان پذیر هست ؟
سلام
FileDialog جعبه جادویی نیست که هرکاری شما درذهنتون هست انجام بده ، وفقط یک آدرس برمیگردونه . کافیه اون آدرس رو به روالی که درلینک فوق بود ، پاس کنید تا عملیات انجام شود.

ExpObj2ExtDb .SelectedItems(1)

hamid-nice
سه شنبه 08 اسفند 1391, 20:43 عصر
سلام
چرا پس به طور پیش فرض فقط جداول را ذخیره می کنه نمی تونیم پیش فرض آن را تغییر دهیم تا همه چیز یا به عبارتی کل فایل را ذخیره کنه

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


درضمن من فرمایش شما را انجام دادم و به صورت یک فایل ضمیمه کردم ولی باز هم انجام نمی شه و error می ده !

با تشکر

Abbas Amiri
سه شنبه 08 اسفند 1391, 21:54 عصر
سلام
چرا پس به طور پیش فرض فقط جداول را ذخیره می کنه نمی تونیم پیش فرض آن را تغییر دهیم تا همه چیز یا به عبارتی کل فایل را ذخیره کنه

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


درضمن من فرمایش شما را انجام دادم و به صورت یک فایل ضمیمه کردم ولی باز هم انجام نمی شه و error می ده !

با تشکر

سلام
کمی تغییرات در روال ExpObj2ExtDb باید ایجاد کرد . چون فاایلی از قبل وجودندارد ، ابتدا یک دیتابیس ساخته میشود وسپس اشیا اکسپورت میشوند . ضمن اینکه از دستور SaveAsText هم برای بقیه اشیا میشود استفاده کرد . باید بجای عدد 6 اعداد ویا ثوابت عددی دیگر قرارداد.
گرچه قبلا هم چند تاپیک که مطالب مشابه درخواست شما راداشته اند باجواب کامل ایجادشده است.


Public Sub ExpObj2ExtDb(sExtDb As String)
On Error GoTo Error_Handler
Dim qdf As QueryDef
Dim tdf As TableDef
Dim obj As AccessObject
Dim ws As Workspace
Dim db As Database
Set ws = DBEngine.Workspaces(0)
If Dir(sExtDb) <> "" Then Kill sExtDb
Set db = ws.CreateDatabase(sExtDb, dbLangGeneral)
' Forms.

For Each obj In CurrentProject.AllForms
DoCmd.TransferDatabase acExport, "Microsoft Access", sExtDb, _
acForm, obj.Name, obj.Name, False
Next obj

' Macros.
............


End Sub

hamid-nice
سه شنبه 08 اسفند 1391, 23:15 عصر
سلام
کمی تغییرات در روال ExpObj2ExtDb باید ایجاد کرد . چون فاایلی از قبل وجودندارد ، ابتدا یک دیتابیس ساخته میشود وسپس اشیا اکسپورت میشوند . ضمن اینکه از دستور SaveAsText هم برای بقیه اشیا میشود استفاده کرد . باید بجای عدد 6 اعداد ویا ثوابت عددی دیگر قرارداد.
گرچه قبلا هم چند تاپیک که مطالب مشابه درخواست شما راداشته اند باجواب کامل ایجادشده است.

[/CODE]

سلام

1- برنامه من یک برنامه بانک اطلاعاتی که اگر کاربر احیانا اطلاعاتش را از دست بده بدبخت میشه چون این اطلاعات می تونه برای بیش از یک سال قبلش هم باشه پس باید به مراتب در زمان های مختلف بتونه Back up های مختلف بگیره و جداگانه ذخیره و هر وقت نیاز شد Back up مورد نظرش را فراخوانی کنه

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

2- لطف کنید لینک این تاپیکی انواع مختلفی که گفتید را داره بذارید من که سرچ کردم چنین تاپیکی ندیدم

3- ممنون راه حلتون تا حدودی من را جلو برد ولی دو مشکل هنوز هست یکی وقتی Back up گرفته می شه رفرنس های لازم برای عملکرد فایل Backup گرفته شده اضافه نشده و فایل Back up کار نمی کنه که فایلش را ضمیمه کردم
این هم یکی از دلایل زدن تاپیک دیگرم برای رهایی از این مشکلات رفرنس ها بود

دوم اصلا جداول را انتقال نمیده


4- برای استفاده از دستور SaveAsText به جای 6 چه عدد یا ... باید گذاشت من سعیم این بود که همین طور مساله ام را حل کنم ولی نتونستم اون را پیدا کنم وگرنه مشکلم حل بود شما لطف کنید اون را بفرمایید چیه ؟
اگر این عدد را بگید مشکلم حل می شه و از راه های دیگه هم برام بهتره

5- با چه دستوری می شه از جداول لینکی بک آپ گرفت به طوری که در فایل بک آپ اون جداول دیگه حالت لینک نداشته باشند ( می خواستم برای این موضوع تاپیک جدا بزنم که شما در بالا از زیاد شدن آن خرسند نبودید امیدوارم اینجا جواب بگیرم تا مجبور نشم براش تاپیک جدا گانه بزنم )

آیا می شه با همین روش save این کار را انجام داد اگه بشه عالی میشه

6- چطور می شه یک unbound بسازم که وقتی پنجره Save باز میشود و فایلی را انتخاب می کنیم آدرس و نام فایل انتخابی با پسوند آن پس از عملیات در آن نشان داده شود

لطفا جوابهایتان را با شماره هایشان بیان فرمایید تا موجب سردرگمی نشود

با تشکر فراوان

hamid-nice
سه شنبه 15 اسفند 1391, 20:38 عصر
کسی هست که بتونه این سوال ها را یا هر کدومشون را پاسخ بده ؟

با تشکر