PDA

View Full Version : بستن برنامه excel از طريق Access



ryonis
چهارشنبه 28 بهمن 1388, 17:00 عصر
دوستان عزيز، در يكي از فرم هاي برنامه ام امكاني به كاربرها داده‌ام كه بعد از دانلود يك فايل اكسل، اون رو در مسير خاصي كپي كنن و با فشار دادن كليدي در فرم ، رديف هاي فايل اكسل به عنوان ركورد جديد به جدول خاصي ايمپورت شوند.
مشكل اينجاست كه بعد از انجام عمليات فوق به ظاهر excel بسته شده اما با رجوع به صفحه Task Manager ميبينيم هنوز باز است. اين امر هم باعث مي شود ديگر بدون رجوع به task manager فايل اكسل ديگري باز نشود و طبيعتاً كاربران عادي تنها مي تونن يكبار عمليات را انجام بدن...

سوال : آيا دستوري داريم كه پس از باز شدن اكسل در پشت زمينه بتواند آن را ببندد؟
(با كمك دوستان همين تالار ، در فرم مورد نظر كدهاي زير رو استفاده كرده ام)




Private Sub Command30_Click
Dim Xl As Excel.Application
Dim FileName As String
Dim wb As Workbook
Dim rng As Range
Dim LastRow As Long
Dim ws As Worksheet


Set Xl = New Excel.Application
FileName = "C:\name.xls"
If FileName = "False" Then Exit Sub
Set wb = Xl.Workbooks.Open(FileName)
Set ws = wb.Worksheets("name")


LastRow = ws.Range("A65536").End(xlUp).Row
ws.Range("A3:T" & LastRow).Copy


DoCmd.OpenTable ("Merchants") 'Opens the table
DoCmd.SetWarnings False
DoCmd.RunCommand acCmdPasteAppend


MsgBox "ÚãáíÇÊ ÈÑæÒÑÓÇäí ÈÇ ãæÝÞíÊ ÇäÌÇ㠐ÑÏíÏ", vbOKOnly, " ÚãáíÇÊ ÈÑæÒÑÓÇäí"


wb.Saved = True
wb.Close Save, "c:\name.xls"
Set Xl = Nothing


End Sub


ببخشيد اگه بعضي از نوشته ها (مثل پرانتزها) جابجا شده! :متفکر::متفکر:

ryonis
پنج شنبه 29 بهمن 1388, 10:59 صبح
فكر كنم سوالم خيلي گنگ شده و كاملاً گيج كننده است!

دوستان! لطفاً اين سوال را پاسخ دهيد:

سوال : آيا دستوري در VBA داريم كه بشه ساير نرم افزارهاي سيستم رو كنترل

كرد؟ مثلاً يك نرم افزار رو run كرد و يكي ديگه رو بست؟ :متفکر:

Mahsa Hatefi
دوشنبه 03 اسفند 1388, 07:58 صبح
با سلام

من هم همين مشكل را دارم و پست اينجا (http://barnamenevis.org/forum/showthread.php?t=206395) هم جواب اين مشكل را نداد . يعني با كدهاي اون دوستمون نتونستم برنامه اكسل رو ببندم

ryonis
پنج شنبه 19 فروردین 1389, 15:09 عصر
با سلام

من هم همين مشكل را دارم و پست اينجا (http://barnamenevis.org/forum/showthread.php?t=206395)هم جواب اين مشكل را نداد . يعني با كدهاي اون دوستمون نتونستم برنامه اكسل رو ببندم
خب پس چه کنیم من و شما؟ من که حسابی گیرم! انشالله شما مثل من نشی! اگه چیزی پیدا کردم خبر میدم :عصبانی++:

ryonis
پنج شنبه 19 فروردین 1389, 15:45 عصر
خب پس چه کنیم من و شما؟ من که حسابی گیرم! انشالله شما مثل من نشی! اگه چیزی پیدا کردم خبر میدم :عصبانی++:
خودم یافتم !!!!

دوستان عزیز و علی الخصوص Mahsa Hatefi (http://barnamenevis.org/forum/member.php?u=19795)عزیز :
جهت بستن فایل اکسل مورد بحث مون کافیه از مثال زیر استفاده کنید. من امتحان کردم (بعد از 7 ، 8 تا کد مختلف) این یکی جواب میده و اکسل رو از Task Manager هم خارج میکنه :


Set oExcel = CreateObject("Excel.Application")
Set oBook = oExcel.Workbooks.Open(xlfilename)
Set oSheet = oBook.Worksheets(1)
...
...
...
...
...
Set rs = Nothing
oBook.Close
oExcel.Quit


خیلی ساده بود اما اعتراف می کنم به فکرم نرسیده بود :بامزه:
مطمئنم خودتون می تونید مطابق روشی که تو برنامه تان دارید آنرا تغییر بدید و دیگه توضیح اضافی ندهم بهتره.


خدا رو شکر!!! این مشکل هم برطرف شد :قهقهه::چشمک:

Javad-2010
شنبه 29 آبان 1389, 08:30 صبح
دوست عزیز؛
از کد زیر هم میتونی استفاده کنی:

ActiveWorkbook.Close
و

Application.Quit