*.mdb -> txt, dbt, xls, html.....
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



*.mdb -> txt, dbt, xls, html..... Expand / Collapse
Автор
Сообщение
21.01.2002 12:25
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 16.11.2005 13:55
Сообщ.: 101, Visits: 1 112
Нужно переконвертить табличку из MDB в другой формат. По идее, все драйвера, которые видны в Access при опции "Экспорт", должны юзаться. То есть здесь в запросе нужно как-то эти ISAM - драйвера подключать... Никаких Excel.Worksheet etc. available.

For dbf:

Dim objDatabase As DAO.Database
Dim objDbe As DAO.DBEngine

StrTempStr = “SELECT * INTO [dBase IV;DATABASE=c:\Test].[new] FROM [Export2]”

Set objDatabase = objDbe.OpenDatabase("c:ew.mdb")
objDatabase.Execute strTempStr

For txt:
StrTempStr = “SELECT * INTO [Text;DATABASE=c:\Test].[new.txt] FROM [Export2]”

For xls:
StrTempStr = “SELECT * INTO [Excel 8.0;DATABASE=c:\Testew.xls] FROM [Export2]”
Result: error – not a valid name

StrTempStr = “SELECT * INTO [Excel 8.0;DATABASE=c:\Test].[new.xls] FROM [Export2]”
Result: error – Jet Engine cannot open file c:\Test. File is already opened exclusive by another user or….

strTempStr = “SELECT * INTO 'Excel 8.0;DATABASE=c:\Testew.xls' FROM [Export2]”
Error: syntax error in query. query syntax is incomplete.

For HTML?

Где ошибка? Ввиду того, что все умные авторы ограничиваются в своих статьях только фразой "бывают и другие форматы, но мы ограничимся лишь рассмотрением mdb" - эти статьи не рассматриваются. Кто кинут линк, где можно по человечески почитать про варианты подключения других форматов?
Сообщ. #739579
23.01.2002 10:58
Forum Guru

Forum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum Guru

участник
Last Login: 29.06.2004 10:34
Сообщ.: 60, Visits: 661
Хватай жирную ссылку!
http://www.microsoft.com/AccessDev/Articles/AccExt.htm
А эта
http://www.microsoft.com/accessdev/articles/daoconst.htm
примерно на ту же тему.
Вообще, стоит почитать статейки с MS Abscess Developer Forum
(http://www.microsoft.com/accessdev/a-a&sa.htm), многие вопросы отпадают автоматически.
Для импорта/экспорта текстовых файлов есть DoCmd.TransferText
Самый интересный параметр - спецификация импорта/экспорта (оказывается, ее нужно создать руцями! и передать методу ейное имя, а создается она: Файл->Внешние данные->Импорт, выбираем текстовый файл с закачиваемыми данными, потом в окне мастера на N-ном шаге обнаруживаем кнопулю "Дополнительно..." Нам сюда!)
Лично я в HTML и Excel не пробовал (не было надобности) но (с текстовыми файлами) импортит/экспортит этот метод с потрясной скоростью за счет пропуска проверок при вставке записей в Абсцесс!
Сообщ. #739744
23.01.2002 11:20
Forum Guru

Forum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum Guru

участник
Last Login: 29.06.2004 10:34
Сообщ.: 60, Visits: 661
Фу-ух! Нашел!
Для импорта/экспорта пригодится такой код:

Public Sub TruncTable(ATableName As String)
On Error GoTo Err_TruncTable

Dim dbs As Database
Set dbs = CurrentDb()
DoCmd.TransferDatabase acImport, "Microsoft Access", dbs.Name, acTable, ATableName, "TEMPTABLE", True
dbs.TableDefs.Refresh
dbs.TableDefs.Delete ATableName
dbs.TableDefs("TEMPTABLE").Name = ATableName
dbs.TableDefs.Refresh
Set dbs = Nothing

Exit_TruncTable:
Exit Sub

Err_TruncTable:
MsgBox Err.Description
Resume Exit_TruncTable
End Sub

Неплохо бы еще кой чего проверить, хотя бы есть ли такая табла, но это уж, надеюсь, сам...
Если общался с серьёзными СУБД - поймешь и оценишь! Проще всего оценить, попробовав удалить (DELETE * FROM TABLENAME) ~450000 записей, каждая запись примерно 147 байт (чем я занимаюсь дважды в день). Кстати, после такой очистки восстановление/сжатие проходит живее.
Дарю ;)
Сообщ. #739746
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 3:29