Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.88/26: Рейтинг темы: голосов - 26, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 18.05.2010
Сообщений: 29
1

Импорт и экспорт на VB

18.05.2010, 18:38. Показов 5014. Ответов 35
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Люди помогите плз с импортом и экспортом. Проблема такая необходимо программно с помощью VB экспортировать таблицы из одной базы Access в другую. Далее экспортировать таблицы Access в Excel и наконец импортировать excel файлы в access. Нет никаких мыслей по этому вопросу поэтому прошу по возможности подробных объяснений. Хотелось бы все это сделать с использованием DAO. Заранее благодарен.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.05.2010, 18:38
Ответы с готовыми решениями:

Импорт и Экспорт
Здравствуйте уважаемые форумчанины У меня возник такой вопрос как реализовать это смотреть...

Экспорт и импорт....
ЗДРАСТВУЙТЕ... Хотел бы задать небольшой вопрос об экспорте и импорте в лотусе. Хотел бы...

Импорт | экспорт
Всем привет! Пожалуйста помогите. Нужен Lotus Enterprise Integrator - LEI

Экспорт/Импорт пользователей
Всем привет! Прошу помощи, необходимо выгрузить локальных пользователей (Windows Server 2003...

35
0 / 0 / 0
Регистрация: 07.04.2008
Сообщений: 99
18.05.2010, 19:46 2
Есть такая классная вещь, как DTS. Позволяет делать экспорт/импорт откуда угодно и куда угодно. Если она есть в Access, то используй ее (в MS SQL Server это точно есть, может быть, в Аксессе тоже).
0
Vsh
18.05.2010, 21:32 3
в асексе нет дтс, как и многого другого, но можно легко создать линк
к другим данным
(таблицы добав линк)
0 / 0 / 0
Регистрация: 18.05.2010
Сообщений: 29
20.05.2010, 13:31  [ТС] 4
Мне нужно сделать импорт/экспорт программно. Т.е. написать программулину на VB (сделать exe файл). Как это делается на vba я знаю.
0
Vsh
23.05.2010, 20:00 5
в асексе допустима конструкция типа
select * from c:myDBmyFile.mdb INTO myTable
Vsh
23.05.2010, 20:05 6
точнее

SELECT * INTO myTable FROM mySrcTable IN C:myDBmyBaza.mdb
0 / 0 / 0
Регистрация: 18.05.2010
Сообщений: 29
24.05.2010, 10:51  [ТС] 7
С аксесом разобрался. Импортировать и экспортировать из одной базы в другую научился. Теперь основная проблема: как выкинуть таблицу из аксес в ексель программно на VB?
0
Lenivec
24.05.2010, 11:31 8
А кто мешает просто считать данные из таблици, а потом просто заполнить данные в Excel, да еще и отформатировать их как душе угодно.
0 / 0 / 0
Регистрация: 18.05.2010
Сообщений: 29
24.05.2010, 13:14  [ТС] 9
Если можно немного разъяснить по поводу считать и заполнить. (Как это осуществить на VB)
0
Lenivec
24.05.2010, 16:18 10
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Function IsExcelLoad() As Boolean
On Error Resume Next
Dim ExcelApp As Object
Set ExcelApp = GetObject(, 'Excel.Application')
If Err.Number <> 0 Then
Err.Clear
IsExcelLoad = False
Else
IsExcelLoad = True
Set ExcelApp = Nothing
End If
End Function
 
Function GetExcelObject() As Object
If IsExcelLoad Then
Set GetExcelObject = GetObject(, 'Excel.Application')
Else
On Error Resume Next
Set GetExcelObject = CreateObject('Excel.Application')
If Err.Number <> 0 Then
Err.Clear
Set GetExcelObject = Nothing
Exit Function
End If
End If
End Function
 
Function NewWorkbook(ExcelApp As Object) As Object
ExcelApp.Workbooks.Add
Set NewWorkbook = ExcelApp.activeWorkbook
End Function
 
Sub main()
Dim ExcelApp As Object, ExcelWB As Object, ExcelWS As Object
Dim i As Long
Dim j As Long
Dim objRst As Recordset
Dim vData As Variant
Dim strFName As String
 
    Set ExcelApp = GetExcelObject()
    ExcelApp.Visible = True
    Set ExcelWB = NewWorkbook(ExcelApp)
    Set objRst = CurrentDb.OpenRecordset('')
    If objRst.RecordCount <> 0 Then
        objRst.MoveLast
        objRst.MoveFirst
        vData = objRst.GetRows(objRst.RecordCount)
        If IsArray(vData) Then
            For i = 0 To UBound(vData, 2)
                For j = 0 To UBound(vData, 1)
                    strFName = ExcelApp.Columns(j + 1).Address
                    strFName = _
                       Right(strFName, Len(strFName) - _
                       (InStr(1, strFName, ':') + 1))
                    ExcelApp.Sheets(1).Range(strFName & i) = _
                       vData(j, i)
                Next j
            Next i
        End If
    End If
End Sub
0 / 0 / 0
Регистрация: 18.05.2010
Сообщений: 29
24.05.2010, 17:55  [ТС] 11
Все круто, но скорость просто никуда не годится. Пока excel пробежится по своему листу и вставит в каждую ячейку данные проходит куча времени. Нет ли какой-нибудь штуки типа копировать сразу всю таблицу из access и вставить ее в excel?
0
0 / 0 / 0
Регистрация: 18.05.2010
Сообщений: 29
24.05.2010, 18:01  [ТС] 12
Т.е. можно ли сделать как-нибудь через стандартный буфер обмена ???
0
Lenivec
24.05.2010, 18:42 13
Можно еще функцию main заменить на следующую:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub main()
Dim ExcelApp As Object, ExcelWB As Object
Dim objRst As Recordset
 
    Set ExcelApp = GetExcelObject()
    ExcelApp.Visible = True
    Set ExcelWB = NewWorkbook(ExcelApp)
 
    Set objRst = CurrentDb.OpenRecordset('')
    If objRst.RecordCount <> 0 Then
        ExcelApp.Sheets(1).Range('A1').CopyFromRecordset objRst
    End If
End Sub
будет работать практически моментально, но если что нужно по ходу дела форматировать, то такое уде неудобно испльзовать. А если чистый импорт, то самое оно.
0 / 0 / 0
Регистрация: 18.05.2010
Сообщений: 29
25.05.2010, 10:40  [ТС] 14
Спасибо! То что нужно!!!
0
0 / 0 / 0
Регистрация: 18.05.2010
Сообщений: 29
26.05.2010, 17:16  [ТС] 15
А обратный процесс вставки из excel в Access существует (т.е. тоже что-нибудь вроде буфера обмена)? Скопировать лист в excel и вставить его в таблицу access. Поделитесь знаниями плз!
0
Lenivec
26.05.2010, 17:50 16
ADO Connection можно открыть практически на все что вздумается, а уж на ексель и подавно, а там открывай recordset и делай с ним что пожелаешь.

Если работать из под аксеса:
Кроме того вместе с аксесом идут такая стандартная библиотека как ACWZLIB.MDE. Её аксес использует как средство импорта из других форматов. Находится она примерно по такому адресу:
C:Program FilesMicrosoft OfficeOfficeACWZLIB.MDE
Цепляешь данную библиотеку и пришешь в коде примерно следующий текст:
call mx_Entry(1, {Путь к файлу}, '', 'Excel 8.0')
0 / 0 / 0
Регистрация: 18.05.2010
Сообщений: 29
30.05.2010, 17:08  [ТС] 17
Если можно не много подробнее про библиотеку. какую функцию там нужно вызывать.
0
Lenivec
30.05.2010, 17:37 18
То что я написал верно для 97 офиса, а в ХР я этого не пробовал, и как выяснилось там все изменилось, поэтому что и как делать в ХР я не знаю.

Если использовать ADO, то это будет выглядеть примерно так.
Visual Basic
1
2
3
4
5
6
7
8
  Set objConnect = New ADODB.Connection
  objConnect.ConnectionString = _
    'Driver={Microsoft Excel Driver (*.xls)};' & _
    'DBQ=Путь к файлу;'
  objConnect.Open
  strSQL = 'SELECT * FROM [Лист2$]'
  Set rsSource = New ADODB.Recordset
  rsSource.Open strSQL, objConnect
<>
0 / 0 / 0
Регистрация: 03.01.2011
Сообщений: 7
03.01.2011, 18:48 19
Вышеописанная программа для экспортирования из Access в Excel у меня выдает ошибку на строчке
Set objRst = CurrentDb.OpenRecordset('')
Пишет
Run-time error '424'
Object required
Может кто подскажет в чем дело ???
0
Lenivec
04.01.2011, 11:31 20
Тебе же написано: Требуется объект.
Ну так ты внутрь кавычек вставь та имя объекта с которого тебе рекордсет открывать, либо текст запроса.
04.01.2011, 11:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.01.2011, 11:31
Помогаю со студенческими работами здесь

Импорт и экспорт объектов
Здравствуйте. Задача следующая: Имеем некоторое приложение и dll. В приложении имеем описание и...

Экспорт, импорт настроек
Доброго времени суток Как переносить настройки среды ? Поиском пользовался. ответа не нашел

Экспорт импорт данных
Подскажите литературу по экспорту импорту в docx, xls

Экспорт / Импорт документов
В типовую конфигурацию входят две обработки - экспорт и импорт доков и справочников через текстовый...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru