View Full Version : compace & repair
fatimah
شنبه 14 مرداد 1385, 08:49 صبح
سلام دوستان
چه طوری میتونم توی تعریف کنیم ( توی یه کلید ) مثلا کلید درج اطلاعات که بعد از اضافه کردن رکورد برنامه رو
compace & repaire کنه .
یا فرق نمی کنه برای حذف و ... هم همین طور
ممنون ...
سنبله کار
شنبه 14 مرداد 1385, 09:15 صبح
این کار باعث پایین اومدن کیفیت برنامتون می شه
اگه دلیلشو بگین شاید راه حل بهتری بتونیم پیشنهاد بدیم
fatimah
شنبه 14 مرداد 1385, 09:31 صبح
سلام
ممنون .
دلیل خاصی ندارم . فقط برای اینکه هر بار که عمل حذف و اضافه و ... انجام میشه برنامه رو فشرده کنه تا حجم برنامه با افزودن تعداد رکورد افزایش پیدا نکنه .
اگه میشه بگین دستوری که باید توی click مربوط به کلید رو بنویسم چیه ؟
موفق باشین
سنبله کار
شنبه 14 مرداد 1385, 09:53 صبح
بهترین راه اونه که موقع خروج از برنامه compact انجام بشه چون خود compact شما رو از برنامه خارج می کنه حال فرض کنید بعد از هر بار اضافه یا حذف کردن بخواهید از برنامه خارج بشید چه وضعی پیش میاد .
fatimah
شنبه 14 مرداد 1385, 09:58 صبح
دوست عزیز از راهنمایی هاتون ممنون
حالا اگه خواسته باشم که توی کلید خروج ( که از برنامه بطور کامل خارج میشه ) این عمل compact انجام بشه باید چی کار کنم ؟
یعنی من اصلا نمی دونم چه طوری باید به اکسس بفهمونم موقع فلان رویداد عمل کامپکت رو انجام بده .
اگه باید دستوراتش رو توی وی بی بنویسیم بی زحمت بگین دستورش چیه ؟
ممنون
سنبله کار
شنبه 14 مرداد 1385, 10:11 صبح
نیازی به کلید ندارید
از این مسیر بروید
tools>options>general>compact on close
اینجا تیک بزنید
fatimah
شنبه 14 مرداد 1385, 10:13 صبح
از این روش موقع طراحی استفاده کردم . آیا این روش باعث میشه که فقط کاربر داره از برنامه استفاده می کنه عمل فشرده سازی انجام بشه .
سنبله کار
شنبه 14 مرداد 1385, 10:16 صبح
منظورتون رو نفهمیدم
fatimah
شنبه 14 مرداد 1385, 10:21 صبح
منظورم اینه که من این گزینه رو فعال کردم .
آیا با این کار قضیه حله ؟
سنبله کار
شنبه 14 مرداد 1385, 10:25 صبح
بله به شرطی که چند کاربره نباشه ( یعنی تحت شبکه )
Hadi-123456
دوشنبه 17 مهر 1385, 19:40 عصر
سلام
فایلی جدید در اکسس ایجاد میکنیم بعد از مدتی که یک سری اطلاعات در داخل جداول آن میریزیم .
هنگامی که ما همه اطلاعات را از داخل جدولها پاک میکنیم متوجه میشویم که حجم فایل از حجم فایل خالی بیشتر است. همانطور که میدانیم علت این است که اطلاعات منطقا پاک شده
بنابراین به قسمت Tool->DataBase Utility->Compact and Repair میرویم و این گزینه را انتخاب میکنیم تا فضاهای بلااستفاده حذف شود
سوال 1- آیا مطالب بالا درست است
سوال 2- چطور این عمل را دیتابیس اتوماتیک انجام دهد
ROGHANI
سه شنبه 18 مهر 1385, 07:28 صبح
سوال1- بله درست است
شاپرک
سه شنبه 18 مهر 1385, 07:45 صبح
Option Compare Database
'************************************************* **************
' CompactAndRepairDB (FUNCTION)
'
' PARAMETERS:
' sSource - Path to source database
' sDestination - Path for destination database
' sSecurity - Path to Jet system database if there is
' one
' sUser - The username if user level security is
' turned on
' sPassword - The password if user level security is
' turned on
' lDestinationVersion - If the destination database should
' not be in the latest version of Jet
' then use this variable to specify
' the version required; 1 = Jet 1.0,
' 2 = Jet 1.1, 3 = Jet 2.x,
' 4 = Jet 3.x, 5 = Jet 4.x etc
'
' RETURN VALUE:
' Boolean - Success indicator
'
' DESCRIPTION:
' This function uses the Microsoft Jet and Replication Objects
' Library (part of ADO) to compact and repair a Microsoft Access
' database. A project reference is required to the Microsoft Jet
' and Replication Objects Library.
'
' You may want to add error handling to this procedure, or to
' the function that calls it as the compact and repair may fail,
' for instance, if exclusive access cannot be gained to the
' source database.
'************************************************* **************
Public Function CompactAndRepairDB(sSource As String, _
sDestination As String, _
Optional sSecurity As String, _
Optional sUser As String = "Admin", _
Optional sPassword As String, _
Optional lDestinationVersion As Long) As Boolean
Dim sCompactPart1 As String
Dim sCompactPart2 As String
Dim oJet As JRO.JetEngine
' Put together the provider string for the source database
sCompactPart1 = "Provider=Microsoft.Jet.OLEDB.4.0" & _
";Data Source=" & sSource & _
";User Id=" & sUser & _
";Password=" & sPassword
' If the database has a user-level security file, add the
' details
If sSecurity <> "" Then
sCompactPart1 = sCompactPart1 & _
";Jet OLEDB:System database=" & sSecurity & ";"
End If
' Put together the provider string for the destination
' database
sCompactPart2 = "Provider=Microsoft.Jet.OLEDB.4.0" & _
";Data Source=" & sDestination
' The destination database will end up in the latest version
' of jet, unless a specific version has been requested;
' 1 = Jet 1.0, 2 = Jet 1.1, 3 = Jet 2.x, 4 = Jet 3.x,
' 5 = Jet 4.x etc
If lDestinationVersion <> 0 Then
sCompactPart2 = sCompactPart2 & _
";Jet OLEDB:Engine Type=" & lDestinationVersion
End If
' Compact and repair the database
Set oJet = New JRO.JetEngine
oJet.CompactDatabase sCompactPart1, sCompactPart2
Set oJet = Nothing
CompactAndRepairDB = True
End Function
شاپرک
شنبه 13 آبان 1385, 11:54 صبح
CompactAndRepair
صبا9841
پنج شنبه 24 اسفند 1385, 10:31 صبح
با تشکر متاسفانه خطا میگیرد:
Option Compare Database
' CompactAndRepairDB (FUNCTION)
Dim oJet As JRO.JetEngine
End Function
ساده و مختصر:
Public Sub CompactDB()
CommandBars("Menu Bar"). _
Controls("Tools"). _
Controls("Database utilities"). _
Controls("Compact and repair database..."). _
accDoDefaultAction
End Sub
davood-ahmadi
جمعه 03 فروردین 1386, 01:52 صبح
گزینه tools > option را انتخاب کنید. قسمت general را انتخاب کنید و گزینه compact on close را بیابید و تأیید کنید. این راه نیازی هم به کد نویسی ندارد.
صبا9841
دوشنبه 06 فروردین 1386, 11:36 صبح
گزینه tools > option را انتخاب کنید. قسمت general را انتخاب کنید و گزینه compact on close را بیابید و تأیید کنید. این راه نیازی هم به کد نویسی ندارد.
به اولین پست این تایپیک توجه نکردید !!!!
هدف فشرده سازی بعد از خارج شدن از برنامه نیست.
laia56
یک شنبه 29 خرداد 1390, 14:50 عصر
ساده و مختصر:
Public Sub CompactDB()
CommandBars("Menu Bar"). _
Controls("Tools"). _
Controls("Database utilities"). _
Controls("Compact and repair database..."). _
accDoDefaultAction
End Sub
[/QUOTE]
با سلام اگر امکان دارد این رویه رابرای اکسس 2007 هم اعمال کنید در صورتیکه بخواهیم این رویه با کلیک یک دکمه انجام شود بازهم ممنون از شما اساتید
id1385
دوشنبه 30 خرداد 1390, 23:09 عصر
laia56
چهارشنبه 01 تیر 1390, 12:06 عصر
دوست عزیز با تشکر اما دکمه compacet ارور میدهد و از کد ایراد میگیرد
mhamedm2008
جمعه 03 تیر 1390, 11:50 صبح
درسته.اررور میده
id1385
شنبه 04 تیر 1390, 13:21 عصر
با سلام
احتمالاً شما در حالت Read only اجرا میکنید،فایل را Extract کنید مثلاً در Desktop بعد اجرا کنید،مشکلی نداره، چون در اصل منوی خود Access رو
بازخوانی میکنه
موفق باشید
laia56
شنبه 04 تیر 1390, 14:32 عصر
دوست عزیز در اکسس 2007؟
به تصاویر زیر توجه کنید طبق فرمایش شما عمل کردم اما همچنان ارور دریافت میشود
71563
71564
laia56
جمعه 11 فروردین 1391, 13:28 عصر
با سلام با اینکه همچنان این ارور دریافت میشود ولی در حال حاضر سئوالم در مورد اجزای این فانکشن است ( اگر بخواهیم جایگزین کد بالا برای خلاصی از ارور دریافت شده بکنیم)
Function RepairDatabase(strSource As String, _
strDestination As String) As Boolean
' Input values: the paths and file names of
' the source and destination files.
' Trap for errors.
On Error GoTo error_handler
' Compact and repair the database. Use the return value of
' the CompactRepair method to determine if the file was
' successfully compacted.
RepairDatabase = _
Application.CompactRepair( _
LogFile:=True, _
SourceFile:=strSource, _
DestinationFile:=strDestination)
' Reset the error trap and exit the function.
On Error GoTo 0
Exit Function
' Return False if an error occurs.
error_handler:
RepairDatabase = False
End Function
معنی اجزای این فاکشن چیست یعنی در قسمت «strSource» ودرقسمت «strDestination» چه باید قرارداد
لازم به یادآوری هست که این فانکشن مربوط به خود اکسس میباشد و دراکسس 2010 میخواهم استفاده کنم
با تشکر
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.