284 / 126 / 35 Регистрация: 16.03.2013 Сообщений: 1,294 |
|
1 |
|
15.04.2016, 10:14. Показов 16995. Ответов 20
Добрый день! Поиск почему то не хотит искать, может некорректно формулирую вопрос. Подскажите пожалуйста как можно реализовать открытие файла формата Excel (допустим называется он «Запасы») расположенного на сетевом диске L: по клику кнопкой расположенной на форме БД? С открытием сетевых папок и запуском приложений типа калькулятора разобрался, а вот как открыть конкретный файл L: Торговый залЗапасы.xlsЛист1 расположенный на сетевом ресурсе не догоняю.
0 |
texnik-san шапоклякистка 8-го дня 3674 / 2234 / 391 Регистрация: 26.06.2015 Сообщений: 4,647 Записей в блоге: 1 |
||||
15.04.2016, 10:44 |
2 |
|||
3 |
9 / 8 / 0 Регистрация: 27.09.2015 Сообщений: 837 |
|
15.04.2016, 11:46 |
3 |
Shell «excel.EXE «»L: Торговый залЗапасы.xls»»», 1 Здравствуйте. По аналогии можно назначить запуск другой access-базы по кнопке, правильно?))) Извиняюсь, что влезаю)))
0 |
шапоклякистка 8-го дня 3674 / 2234 / 391 Регистрация: 26.06.2015 Сообщений: 4,647 Записей в блоге: 1 |
|
15.04.2016, 12:56 |
4 |
Да.
3 |
284 / 126 / 35 Регистрация: 16.03.2013 Сообщений: 1,294 |
|
15.04.2016, 14:14 [ТС] |
5 |
ПРЕОГРОМНОЕ СПАСИБО! Добавлено через 16 минут
1 |
texnik-san шапоклякистка 8-го дня 3674 / 2234 / 391 Регистрация: 26.06.2015 Сообщений: 4,647 Записей в блоге: 1 |
||||
15.04.2016, 15:45 |
6 |
|||
сделать что он именно в директории L:ТорговыйЗал будет искать «Оно» вообще ничего не ищет.
0 |
mobile 26777 / 14456 / 3192 Регистрация: 28.04.2012 Сообщений: 15,782 |
||||
15.04.2016, 15:54 |
7 |
|||
Мне кажется с гиперссылкой проще, нет?
Съедает обратный слэш перед кавычкой…
3 |
шапоклякистка 8-го дня 3674 / 2234 / 391 Регистрация: 26.06.2015 Сообщений: 4,647 Записей в блоге: 1 |
|
15.04.2016, 17:52 |
8 |
Съедает обратный слэш перед кавычкой… Точно. Который раз попадаюсь уже. А с гиперссылкой — да, вообще шикарное решение, особенно для случая, когда не стоит задача запускать какое-то конкретное приложение, а просто нужно открыть файл тем, чем он может быть открыт.
2 |
Dimasterfrom4e 9 / 8 / 0 Регистрация: 27.09.2015 Сообщений: 837 |
||||
15.04.2016, 22:58 |
9 |
|||
И снова лезу….))) Не подскажете пример с кодом для открытия другой бд access на кнопке? Что-то не выходит у меня…((( Access 2013 Извиняюсь, что в чужую тему пишу))
Тут код на меня ругается. С кодом ругаюсь пока учусь)))
0 |
26777 / 14456 / 3192 Регистрация: 28.04.2012 Сообщений: 15,782 |
|
15.04.2016, 23:23 |
10 |
Dimasterfrom4e, Shell запускает программу, исполняемый файл. А программа MSaccess.exe. Ваш файл это параметр запуска, а не исполняемый файл. И что за команда или параметр «start» после шелла? Явно лишний. Посмотрите как записана shell у texnik-san. Только измените программу на акс.
1 |
9 / 8 / 0 Регистрация: 27.09.2015 Сообщений: 837 |
|
15.04.2016, 23:30 |
11 |
Посмотрите как записана shell у texnik-san. Вначале пробовал, но не вышло, т.к. неправильно программу написал(((( А теперь все здорово!!!!)))) Благодаря вам)))) Спасибо))))
0 |
9 / 8 / 0 Регистрация: 27.09.2015 Сообщений: 837 |
|
17.04.2016, 02:37 |
12 |
Напоследок еще вопрос. Вот допустим назначил я несколько кнопок на открытия разных файлов. Но у нас на работе есть сотрудники с разными полномочиями, соответственно не у всех будут нужные файлы в папках, а формат рабочего файла одинаковый для всех. Можно ли написать код, что при отсутствии файла в нужной директории, выходило сообщение: «Проверьте полномочия» или что-то вроде того? То есть хочется избежать появления окна debug-ошибки. Заранее спасибо за помощь)))
0 |
mobile 26777 / 14456 / 3192 Регистрация: 28.04.2012 Сообщений: 15,782 |
||||
17.04.2016, 02:55 |
13 |
|||
1 |
284 / 126 / 35 Регистрация: 16.03.2013 Сообщений: 1,294 |
|
17.04.2016, 21:20 [ТС] |
14 |
Как же не ищет☺?Когда не находит файл , то пишет, открыть невозможно,файл не найден… Добавлено через 7 минут Добавлено через 3 минуты 1 application.FollowHyperlink «L:Торговый зал» & [Как подставить сюда значение из поля формы?] Добавлено через 10 минут application.FollowHyperlink «L:Торговый зал» & [namefile]
0 |
7267 / 4469 / 288 Регистрация: 12.08.2011 Сообщений: 13,513 |
|
18.04.2016, 05:26 |
15 |
1 application.FollowHyperlink «L:Торговый зал» & [Как подставить сюда значение из поля формы?] application.FollowHyperlink «L:Торговый залкосая» & forms!названиеформы!полеформы
0 |
commun 450 / 238 / 14 Регистрация: 29.10.2014 Сообщений: 959 |
||||
06.05.2016, 21:59 |
16 |
|||
Вообще само приложение подходит к этому вопросу… Вот что можно обнаружить в Справке 10го Акса по запросу
0 |
9 / 8 / 0 Регистрация: 27.09.2015 Сообщений: 837 |
|
08.05.2016, 20:17 |
17 |
Извиняюсь, что снова лезу, но может ответ на следующий вопрос кому-нибудь пригодится в будущем))) Есть ли способ, так сказать, наоборот?? Из access как открыть другие файлы в принципе понятно, а вот по кнопке в excel к примеру понадобится открыть access-файл или даже выполнить запрос какой нибудь?? Или это мне уже в категорию excel в форуме писать??))
0 |
26777 / 14456 / 3192 Регистрация: 28.04.2012 Сообщений: 15,782 |
|
08.05.2016, 20:30 |
18 |
вот по кнопке в excel к примеру понадобится открыть access-файл или даже выполнить запрос какой нибудь?? Есть несколько способов. В Excel есть Query и можно создавать запросы с его помощью.
1 |
9 / 8 / 0 Регистрация: 27.09.2015 Сообщений: 837 |
|
08.05.2016, 20:49 |
19 |
В Excel есть Query и можно создавать запросы с его помощью. Это наверно отдельная тема)) Я еще обдумаю это, возможно из экселя не понадобится это делать)))
0 |
Zlodiy 0 / 0 / 0 Регистрация: 26.11.2016 Сообщений: 6 |
||||
28.11.2016, 10:41 |
20 |
|||
Здравствуйте все. Может не в тему — прошу меня простить
Но при запуске формы пишет, что файл по этому пути не найден
0 |
Открытие книги Excel через Access |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Return to VBA Code Examples
Open Excel File
This function below will open an Excel file with Access VBA.
Before using the function, make sure to add a reference to Microsoft Excel Object Library by going to Tools > References and checking Microsoft Excel Object Library.
Public Function OpenExcelFile(strFilePath As String) As Boolean
'Required: Tools > Refences: Add reference to Microsoft Excel Object Library
Dim appExcel As Excel.Application
Dim myWorkbook As Excel.Workbook
Set appExcel = CreateObject("Excel.Application")
Set myWorkbook = appExcel.Workbooks.Open(strFilePath)
appExcel.Visible = True
'Do Something or Just Leave Open
Set appExcel = Nothing
Set myWorkbook = Nothing
End Function
'Usage Example
Sub OpenExcelFile_Example()
Call OpenExcelFile("C:UsersStevePC2Downloadstest.xlsx")
End Sub
Open Word Document Using Access VBA
First set a reference to the Word Library for the Access VBA Environment.
Note: You would do this in the VBE by going to Tools>References and ticking Microsoft Word 15.0 Object Library.
The following code will allow you to open your Word document using Access:
Dim WordDoc As Object
Set WordDoc = CreateObject("Word.Application")
WordDoc.Visible = True
WordDoc.Documents.Open "C:UsersTarynDesktopBusinessDocument.docx"
Set WordDoc = Nothing
Or you can adapt the Open Excel File function above to create a function to open a Word document from Access VBA.
If you ever wanted to click a magic button and make complex business tasks happen automatically, macros can make that wish come true. Macros are small programs that execute commands you specify. Write them yourself using Visual Basic for Applications or let programs such as Microsoft Access build them for you. While working with an Access database, you may often find yourself importing data from Excel. Eliminate that repetitive task by letting Access create a macro that loads your spreadsheet at the click of a button.
Prepare Spreadsheet
-
Launch Access and open one of your databases.
-
Move to the Tables pane and double-click the table you wish to load. The table’s fields appear in columns running across the top of the update pane. You’ll probably find it easier to work with your data if the column headings in your Excel spreadsheet match the names of the fields in your Access database.
-
Launch Excel and open the spreadsheet you wish to load into Access. Verify that the spreadsheet’s column names match the Access table’s field names. If the spreadsheet has no column headings, right-click the spreadsheet’s first row and select “Insert.” Excel adds a new empty row to the top of the spreadsheet. Type a column heading for each column in the spreadsheet. For example, if the field names in your Access table are Name and Age, use those names as column headings in the spreadsheet.
Create Macro
-
Return to Access and click “Create.” Double-click the “Macro” button on the Ribbon to view the Macro Builder.
-
Click “Show All Actions” and then click “Action Catalog” to display the Action Catalog pane if it is not visible. This pane displays a list of macro categories.
-
Move to the Action Catalog Pane and double-click “Data Import/Export” to view the macros within that category. The ImportExportSpreadsheet form appears. This form allows you to set up the parameters Access needs to import your spreadsheet.
-
Type the name of your table in the “Table name” text box. Type the path name of your spreadsheet in the “File name” text box. For example, if it is a file named “Sales.xlsx” residing in a folder named “Spreadsheets” on your “C” drive, type the following into the “File Name” text box: .. C:SpreadsheetsSales.xslx
-
Type “Yes” in the Has Field Names text box and press “Ctrl-S.” Type a name for your macro in the “Macro Name” text box and click “OK.”
Run Macro
-
Click the tool bar’s “Database Tools” button and then click “Run Macros” to view the Run Macro popup window.
-
Click the “Macro Name” drop-down menu and select the macro you created.
-
Click “OK” to run the macro. Excel imports the spreadsheet data into the table.
|
|
|
Здесь обсуждаются вопросы по языку Visual Basic 1-6 (а так же по схожим языкам, как, например, PowerBASIC).
Вопросы по Visual Basic .NET (это который входит в состав Visual Studio 2002/2003/2005/2008+, для тех, кто не в курсе) обсуждаются в разделе .NET.
Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что Вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются. Студенты, вам сюда: ПОМОЩЬ СТУДЕНТАМ!
4. Используйте теги [ code=vba ] …текст программы… [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Формулируйте свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной (и более) давности, без веских на то причин.
Полезные ссылки:
FAQ Сайта FAQ Раздела Кладовка Наши Исходники API-Guide Поиск по Разделу MSDN Library Online Google
Ваше мнение о модераторах: SCINER, B.V.
Как из Access открыть Excel выполнить в Excel макрос и закрыть с сохранением.
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
Member Рейтинг (т): 4 |
Весь фак перерыл — ничего не нашел…. из Аксеса хочу открыть екселевский файл в который экспортировал данные. Числовые поля которые упрямо воспринимаются как текст привести в нормальный вид следующим кодом:
ActiveSheet.UsedRange.Select For Each tt In Selection.Cells tt.Value = tt.Value Next tt ____________________________ Добавлено 08.10.07, 12:31
Shell «cmd /X /C start c:mydocexample.xls» открывает — но как дальше выполнить там макрос пока не ясно. Добавлено 08.10.07, 12:54
sse = «D:My_docsliv.xls» Dim objExcel As Object Set objExcel = CreateObject(«Excel.application») With objExcel .Workbooks.Add Template:=sse .Visible = True End With objExcel.ActiveSheet.UsedRange.Select For Each tt In objExcel.Selection.Cells tt.Value = tt.Value Next tt objExcel.Workbooks(1).Save objExcel.Application.Quit Set objExcel = Nothing
Единственное думает очень долго…. за наведение на мысль спасибо Mongol и maxim84_ |
Nick |
|
Member Рейтинг (т): 4 |
немного модифицировал
sse = «D:My_docsliv.xls» Dim objExcel As Object Set objExcel = CreateObject(«Excel.application») With objExcel .Workbooks.Add Template:=sse .Visible = True End With objExcel.ActiveSheet.UsedRange.Select For Each tt In objExcel.Selection.Cells tt.Value = tt.Value rreee = tt.Address Next tt objExcel.Application.DisplayAlerts = False objExcel.Workbooks(1).SaveAs sse objExcel.Application.Quit Set objExcel = Nothing
Но грабли вылезли в следующем: на полной базе это займет около часа (напомню в екселе это занимает 20 сек) ХЕЛП!!!!!!!!!! Сообщение отредактировано: Nick — 08.10.07, 13:44 |
pvr |
|
Junior Рейтинг (т): 9 |
Этого надо избегать
For Each tt In objExcel.Selection.Cells Вот так будет быстрее:
Const xlPasteValues = -4163 Const xlCellTypeBlanks = 4 Const xlPasteSpecialOperationAdd = 2 Dim objExcel As Object, sse As String sse = «D:My_docsliv.xls» Set objExcel = CreateObject(«Excel.application») With objExcel .Workbooks.Open Filename:=sse, ReadOnly:=False .Cells.SpecialCells(xlCellTypeBlanks).Copy .ActiveSheet.UsedRange.PasteSpecial xlPasteValues, xlPasteSpecialOperationAdd .DisplayAlerts = False .Workbooks(1).SaveAs Filename:=sse .Quit End With Set objExcel = Nothing Сообщение отредактировано: pvr — 08.10.07, 20:29 |
Nick |
|
Member Рейтинг (т): 4 |
pvr даааа….. pvr— все равно спасибо — показал иной подход. Вопрос остаётся открытым… Добавлено 09.10.07, 08:25 Следовательно уточняю задачу: Открыть ексель — это решено |
pvr |
|
Junior Рейтинг (т): 9 |
Nick И тот же код из самого Excel — только objExcel замени на Application. У меня одинаково отрабатывает….. Может у тебя при старте Excel куча каких-нибудь надстроек грузится? |
Nick |
|
Member Рейтинг (т): 4 |
я же говорю — макрос сначала был написан в екселе — время выполнения — 20-40 секунд на всё.
|
Rust |
|
Цитата Nick @ 09.10.07, 07:50 Создать в нем макрос определенного содержания — не решено Динамическое добавление и запуск макроса на языке VBA в среде разработки Visual Basic |
pvr |
|
Junior Рейтинг (т): 9 |
Nick |
Nick |
|
Member Рейтинг (т): 4 |
2 pvr копирование. С учетом поста Rust думаю можно закрывать тему. |
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- Visual Basic: Общие вопросы
- Следующая тема
[ Script execution time: 0,0304 ] [ 16 queries used ] [ Generated: 13.04.23, 19:48 GMT ]