Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: экспорт в dbf. а затем запаковка
 
 автор: mulrus   (08.05.2009 в 22:36)   личное сообщение
 
 

Добрый день всем. Интересует вопрос.

Есть таблица, есть кнопка на форме, можно ли сделать так, чтобы привязать выполнение следующий операции. Экспортируем в формат dbf и потом с помощью ДОС-команд (shell в VBA, есл не ошибаюсь) архивируем?

  Ответить  
 
 автор: Goblin   (09.05.2009 в 21:33)   личное сообщение
 
 

На счет архивирования тут уже не раз говорилось. Аж через бат файл в рар пакуют. Есть и архивирование из базы. А вот на счет перевода в dbf - это что? Может сразу в pdf?

  Ответить  
 
 автор: mulrus   (10.05.2009 в 13:09)   личное сообщение
 
 

Архивить уже нашел как сделать. А вот сохранить таблицу в dbf было бы не плохо. Есть л какая нибудь команда в VBA?

  Ответить  
 
 автор: Goblin   (10.05.2009 в 15:39)   личное сообщение
 
 

Лукас его знает. Если он не скажет - никто не поможет.

  Ответить  
 
 автор: mulrus   (11.05.2009 в 10:26)   личное сообщение
 
 

Вроде нашел команду в Макросах: ПреобразоватьБазуДанных, только вот как-то пока криво работает. Никто не знает, где можно примеры достать?

  Ответить  
 
 автор: osmor   (12.05.2009 в 09:44)   личное сообщение
 
 

DoCmd.TransferDatabase acExport, "dBase IV" ...
вполне прилично работает
Если нужно что бы в DBFбыли поля определенного формата, то я делал через создание временной таблицы с нужными форматами полей, добавлял в нее данные и уже для этой таблицы делал TransferDatabase, т.к. для запроса текстовые поля все будут 255 символов. (кажется)

  Ответить  
 
 автор: mulrus   (12.05.2009 в 10:48)   личное сообщение
 
 

Спасибо большое.
Если не сложно, можно полный примерчик строки DoCmd.TransferDataBase???

  Ответить  
 
 автор: osmor   (12.05.2009 в 11:00)   личное сообщение
 
 


DoCmd.TransferDatabase acExport, "dBase IV", _
            "d:\Temp", _
            acQuery, _
            "qryExport2DBFExport", _
            "NameFile.dbf", _
            False

  Ответить  
 
 автор: mulrus   (12.05.2009 в 12:32)   личное сообщение
 
 

Супер. А можно еще для красоты сделать так, чтобы выдавалось окно, "Куда сохранить файл?"

  Ответить  
 
 автор: osmor   (12.05.2009 в 12:56)   личное сообщение
 
 

можно. открываете диалог сохранения
так
http://hiprog.com/index.php?option=com_content&task=view&id=468
или так
Dim dlgSaveAs As FileDialog

Set dlgSaveAs = Application.FileDialog( _
    FileDialogType:=msoFileDialogSaveAs)

dlgSaveAs.Show


и полученный путь и имя подставляете в Docmd

  Ответить  
 
 автор: mulrus   (12.05.2009 в 13:47)   личное сообщение
 
 

Compile Error:

User-Defined type not defined

  Ответить  
 
 автор: Анатолий (Киев)   (12.05.2009 в 14:14)   личное сообщение
 
 


User-Defined type not defined


Видимо у вас Акс2000, там такого объекта нет.


"Куда сохранить файл?"


Если имеется ввиду диалог выбора папки, то можно так:

Const Options = &H201    'Без кнопки "Новая папка" (1 - с кнопкой)
    
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.BrowseForFolder(0, DlgTitle, Options, RootFolder)
    
    path = objFolder.Self.path   'В Win98 не работает

  Ответить  
 
 автор: mulrus   (12.05.2009 в 14:26)   личное сообщение
 
 

Если честн, то Акс2003. :)

Выбор папки работает, только вот, как туда файл сохранить.

У меня идет:


DoCmd.TransferDatabase acExport, "dbase 5.0", "c:\temp", acTable, "mytable", "test.dbf", False



Здесь указан, путь абсолютный, а мне нужен именно, который я выбрал отсюда


Const Options = &H201    'Без кнопки "Новая папка" (1 - с кнопкой) 
     
    Set objShell = CreateObject("Shell.Application") 
    Set objFolder = objShell.BrowseForFolder(0, DlgTitle, Options, RootFolder) 
     
    path = objFolder.Self.path   'В Win98 не работает 


Как это дело увязать?

  Ответить  
 
 автор: mulrus   (12.05.2009 в 14:57)   личное сообщение
 
 

-

  Ответить  
 
 автор: Анатолий (Киев)   (12.05.2009 в 15:06)   личное сообщение
 
 

DoCmd.TransferDatabase acExport, "dbase 5.0", path, acTable, "mytable", "test.dbf", False

  Ответить  
 
 автор: mulrus   (12.05.2009 в 15:15)   личное сообщение
 
 

Спасибо. Но вот только все равно беда.

Файл он сохраняет, но высунулись два бага.

1. Не могу сохранить файл с русскими названиями каталогов.
2. Когда нажимаешь "х" в окне выбора каталога появляется ошибка:

Run-time Error '91'
Object variable or With block variable block not set

  Ответить  
 
 автор: Анатолий (Киев)   (12.05.2009 в 15:32)   личное сообщение
 
 


2. Когда нажимаешь "х" в окне выбора каталога появляется ошибка:


If (objFolder Is Nothing) Then Exit Function
path = objFolder.Self.path 'В Win98 не работает


1. Не могу сохранить файл с русскими названиями каталогов.

А диалог выбора папки возвращает читабельный путь? Какая ошибка? Если экспортировать через меню с таким путем - работает?

  Ответить  
 
 автор: mulrus   (12.05.2009 в 15:45)   личное сообщение
 
 

Смотрю, через точку останова, путь в переменную возвращает и там он просматривается.

А ошибка выдается следующая:
Непридвиденная ошибка драйвера внешней базы данных

То биш не может он dbf сохранить в каталоги с русскими названиями

  Ответить  
 
 автор: Анатолий (Киев)   (12.05.2009 в 16:45)   личное сообщение
 
 

Странно! Покажите пример "неработающего" пути к файлу.
И что, как только есть хоть одна буква кирилицы - не работает? Может дело не в них, а, например, в символах "'" или "]"? А на другом компе?
Кстати, вы на своем компе при экспорте можете создать файл с именем длиннее 8 символов (например C:\Long name.dbf)? Это к тому, есть ли BDE у вас в системе.

  Ответить  
 
 автор: Анатолий (Киев)   (12.05.2009 в 16:48)   личное сообщение
 
 

Странно! Покажите пример "неработающего" пути к файлу.
И что, как только есть хоть одна буква кирилицы - не работает? Может дело не в них, а, например, в символах "'" или "]"? А на другом компе?
Кстати, вы на своем компе при экспорте можете создать файл с именем длиннее 8 символов (например C:\Long name.dbf)? Это к тому, есть ли BDE у вас в системе.

  Ответить  
 
 автор: mulrus   (12.05.2009 в 21:11)   личное сообщение
 
 

Хм. Интересная мысль. BDE у меня стоит.

А путь к примеру такой: хочу выгрузить на : C:\МояПапка

  Ответить  
 
 автор: mulrus   (13.05.2009 в 11:50)   личное сообщение
 
 

Все заработало. Видимо дело действительно было в BDE. Удалил его и все запахало.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList