|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Я только начинаю делать программу и нужна ваша помощь. Идея заключается в том, чтобы из файла Exclel с уже заполненными данными вытащить только определенные столбцы и записать их в таблицу Access. И после этого отобразить данные в таблице DataGrid или MSFlexGrid. Помогите, кто может. Буду рад любой помощи. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2010, 21:02 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
и тогда уж Идея заключается в том, чтобы из файла Ворд, а далее всё тоже самое ?????????? Буду рад любой помощи ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2010, 21:06 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Ципихович Эндрю, Хорошо, объясню по другому. Есть файл Excel. В нем есть столбцы и строки заполненные данными. Нужно, чтобы программа "вытащила" все данные (либо по условию), допустим из столбца "B" и вставила в 1 столбец таблицы Access. Потом этот столбец с данными из Access отобразился в 1 столбце таблицы DataGrid или MSFlexGrid. Вот. Если нужно будет могу еще подробнее написать)) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2010, 21:16 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Bobax012, Вы зря ко мне обращаетесь, я также как и Вы не знаю, и к Вашему вопросу приконнектился, ОК?? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2010, 21:22 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
рз собеседников нет, тогда Потом этот столбец с данными из Access отобразился в 1 столбце таблицы DataGrid или MSFlexGrid. Вот. Если нужно будет могу еще подробнее написать)) Да нужно именно эту часть, что такое таблица DataGrid или MSFlexGrid ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2010, 21:28 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Ципихович Эндрю, ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2010, 21:38 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Bobax012, немножко прояснилось, просто если присутствует понятие Access, значит вероятно, скорее всего форма будет с прокруткой, да??? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2010, 21:41 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Ципихович Эндрю, Взаимную беседу следует вести так, чтобы каждый из собеседников извлек из нее пользу, приобретая больше знаний.(с) Вопрос остается открытым... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2010, 21:57 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Эндрю Я просил тебя не лезть в топики, в которых ты нихрена не понимаешь. По всей видимости придется пожаловаться модератору. Bobax012 Непонятно только одно, собственно среда выполнения. VB6? C SQL знакомы? с ADO знакомы? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2010, 23:30 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Ципихович ЭндрюBobax012, немножко прояснилось, просто если присутствует понятие Access, значит вероятно, скорее всего форма будет с прокруткой, да??? ....ууууу ... вот оно чоо , пойду отнесу этот "шедевр" в Акс ... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2010, 23:38 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Ципихович ЭндрюBobax012, немножко прояснилось, просто если присутствует понятие Access, значит вероятно, скорее всего форма будет с прокруткой, да??? Эндрю, это общеее заблуждение людей не работающих с Акс-формами ! главное и принципиальное отличие для форм, в которых "присутствует понятие Access" - они (формы) - зелёные !! ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2010, 23:46 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Shocker.ProBobax012 Непонятно только одно, собственно среда выполнения. VB6? C SQL знакомы? с ADO знакомы? В принципе, чтобы понять, можно ли это сделать запросом - дайте образец файла. Не все данные можно корректно будет получить через ODBC. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2010, 00:49 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Shocker.ProShocker.ProBobax012 Непонятно только одно, собственно среда выполнения. VB6? C SQL знакомы? с ADO знакомы? В принципе, чтобы понять, можно ли это сделать запросом - дайте образец файла. Не все данные можно корректно будет получить через ODBC. Среда выполнения VB 6.0. С SQL и ADO немного знаком, но только азы. Если нужно будет, придется разбираться, деваться не куда)) Пример файла прикрепляю. Ниже форма VB 6. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2010, 13:06 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Bobax012, ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2010, 13:07 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Bobax012, посмотрите для начала 9847080 этот пример тут показано, как через SQL работать с таблицей экселя. Единственное - он там работает с текущей книгой ThisWorkbook, а вам требуется ее предварительно открыть. соответственно, с аксессовсой таблицей работать так же, как с любой БД, да и примеров тут полно. Как перекинете - можно будет уже думать об интерфейсах, сетках и т.п. Вообще, разбейте задачу на части и решайте по частям, а не все сразу ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2010, 13:36 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Shocker.ProBobax012, посмотрите для начала 9847080 этот пример тут показано, как через SQL работать с таблицей экселя. Единственное - он там работает с текущей книгой ThisWorkbook, а вам требуется ее предварительно открыть. соответственно, с аксессовсой таблицей работать так же, как с любой БД, да и примеров тут полно. Как перекинете - можно будет уже думать об интерфейсах, сетках и т.п. Вообще, разбейте задачу на части и решайте по частям, а не все сразу Мне нужно, чтобы пользователь не касался ни базы Access ни данных Excel (т.е. не проводил ни каких манипуляций, типа открыть Access, открыть Excel), он считал данные из Excel перекинул в Access и все. Если так не получается, то хотя бы пересохранить файл из Excel в текстовый формат с разделителем в виде табуляции. И считывать данные оттуда (но это, если не получается с Excel) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2010, 13:54 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Bobax012Мне нужно, чтобы пользователь не касался ни базы Access ни данных Excel (т.е. не проводил ни каких манипуляций, типа открыть Access, открыть Excel), он считал данные из Excel перекинул в Access и все. ... Код: plaintext 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2010, 18:43 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Bobax012[Мне нужно, чтобы пользователь не касался ни базы Access ни данных Excel (т.е. не проводил ни каких манипуляций, типа открыть Access, открыть Excel), он считал данные из Excel перекинул в Access и все. Если так не получается, то хотя бы пересохранить файл из Excel в текстовый формат с разделителем в виде табуляции. И считывать данные оттуда (но это, если не получается с Excel) Никто этого и не предлагает. Кстати, кверти предложил красивый вариант, как сделать это в один прием. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2010, 18:46 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
qwerty112Bobax012Мне нужно, чтобы пользователь не касался ни базы Access ни данных Excel (т.е. не проводил ни каких манипуляций, типа открыть Access, открыть Excel), он считал данные из Excel перекинул в Access и все. ... Код: plaintext 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.
Проверил, все работает. Спасибо ОГРОМНЕЙШЕЕ!!! Действительно, очень выручили. Теперь будем выводить данные в MSFlexGrid)) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2010, 23:07 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Решил проверить на ввод любых данных в столбцы, т.е. в поле, где вводят текст ввожу цифры. И тут заметил, что если в поле с текстом последним введено число, то отражаются только числовые значения, а, если текст, то соответственно текстовые. Как можно сделать, чтобы отражались все данные. Именно все данные. Т.к. в дальнейшем будут добавляться столбцы в которых будут добавляться любые дынные (текстовые, либо числовые). Может быть, это делается не программно, просто не правильно организовал таблицу Access? Всем столбцам присвоил тип "Текстовый". Подскажите, где ошибся. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2010, 23:32 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Bobax012, Это особенность работы ODBC-драйвера экселевских файлов. Он автоматически определяет тип считываемого столбца по нескольким первым значениям. Так что вам придется либо иметь однородные данные в столбце, либо менять принцип считывания данных из файла. А вообще - это ненормальных подход с точки зрения проектирования БД. Вариативные данные в столбце - это очень обоснованное исключение, а никак не правило. Так что попробуйте спроектировать сначала систему с однородными данными. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2010, 01:02 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Нашел другой способ в интернете: Dim excel_app As Object Dim excel_sheet As Object Dim max_row As Integer Dim max_col As Integer Dim row As Integer Dim col As Integer Dim conn As ADODB.Connection Dim statement As String Dim new_value As String Screen.MousePointer = vbHourglass DoEvents ' Создаём приложение Excel. Set excel_app = CreateObject("Excel.Application") ' Если хотите, чтобы Excel был видимым, то раскомментируйте следующую строку. ' excel_app.Visible = True ' Открываем таблицу Excel. excel_app.Workbooks.Open FileName:=txtExcelFile.Text ' Проверяем версию. If Val(excel_app.Application.Version) >= 8 Then Set excel_sheet = excel_app.ActiveSheet Else Set excel_sheet = excel_app End If ' Узнаём строку и колонку, которые использовались последний раз. max_row = excel_sheet.UsedRange.Rows.Count max_col = excel_sheet.UsedRange.Columns.Count ' Открываем базу данных Access. Set conn = New ADODB.Connection conn.ConnectionString = _ "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & txtAccessFile.Text & ";" & _ "Persist Security Info=False" conn.Open ' Делаем цикл по строкам таблицы Excel, ' пропуская первую строку, которая содержит ' заголовки колонок. For row = 2 To max_row ' Составляем инструкцию INSERT. statement = "INSERT INTO Books VALUES (" For col = 1 To max_col If col > 1 Then statement = statement & "," new_value = Trim$(excel_sheet.Cells(row, _ col).Value) If IsNumeric(new_value) Then statement = statement & _ new_value Else statement = statement & _ "'" & _ new_value & _ "'" End If Next col statement = statement & ")" ' Выполняем инструкцию INSERT. conn.Execute statement, , adCmdText Next row ' Закрываем базу данных. conn.Close Set conn = Nothing ' Если хотите, чтобы Excel остался запущенным, закомментируйте строки ' Close и Quit. ' Закрываем Книгу, сохраняя изменения. excel_app.ActiveWorkbook.Close True excel_app.Quit Set excel_sheet = Nothing Set excel_app = Nothing Screen.MousePointer = vbDefault MsgBox "Copied " & Format$(max_row - 1) & " values." Но, в процессе выполнения выходит ошибка, и жалуется на строку conn.Execute statement, , adCmdText Либо просто виснет, так, что приходится через диспетчер завершать программу. Что можно с этим сделать, чтобы все работало нормально? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2010, 02:45 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Bobax012, если в запросе, в описании файла Excel, вы поставите описание IMEX=1, то все данные будут восприниматься как текстовые Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2010, 08:25 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
если хотите писать из текущего файла (насколько я понял последний пост ТС), то способ через инсерт инто имеет один незначительный косячокс, символьный набор с которым Вы работаете ограничен, иначе говоря, если в тексте ячейки встретится зарезервированный символ (например выделение текстовой строки - апостроф или кавычки)- наступит маленький трындец. Можете попробовать. Нужно либо пользовать способ qwerty112, либо получать таблицу как рекордсет и через addnew и update дописывать туда, что Вам нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2010, 11:06 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
mds_worldBobax012, если в запросе, в описании файла Excel, вы поставите описание IMEX=1, то все данные будут восприниматься как текстовые Код: plaintext
Спасибо, помогло!!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2010, 19:30 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Bobax012, Решил воспользоваться вашим советом и работать с кодом, что написал qwerty112 Но возник еще вопрос. Нельзя ли пути к файлам сделать не жестко привязанными, т.е, чтобы пользователь сам выбирал местоположение файлов Из кода Const ExcelFilePath = "<путь и имя Эксель-файла>" Const AccFilePath = "<путь и имя Акс-файла>" понимаю, что путь пишется в самом коде программы. И думаю, что по другому никак нельзя сделать. Я прав? Если да, то как иначе можно сделать выбор файлов пользователем? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2010, 19:36 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Bobax012как иначе можно сделать выбор файлов пользователем? Например, Application.FileSearch. Хелп, поиск по форуму. Или хранить пути в таблицах. Или сделать форму и в поле писать путь вручную. Вариантов тьма. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2010, 20:50 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Bobax012, Вы, кажется, так и не указали среду разработки. VB6? Тогда смотрите контрол CommonDialog - там все просто. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2010, 21:00 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Shocker.ProBobax012, Вы, кажется, так и не указали среду разработки. VB6? Тогда смотрите контрол CommonDialog - там все просто. виноват, указывали. В общем - вот. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2010, 21:01 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Идем к следующему шагу)) Выводим данные из таблицы Access в грид. И тут задался вопросом, какой грид выбрать. Пробежался по форуму и у каждого свои варианты. Некоторые даже предлагают сторонние гриды, либо писать самим, но т.к. я еще в этом не силен, посоветуйте грид который бы мог вместить 65536 записей, т.к. именно столько максимальное количество строк в Excel. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2010, 22:27 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Bobax012посоветуйте грид который бы мог вместить 65536 записей, т.к. именно столько максимальное количество строк в Excel. И опять лучше переделать ТЗ Потому что никакому пользователю не требуется столько записей в гриде. Обычно используют постаничный вывод или фильтр. А еще, это ограничение на количество строк отсутствует в последних версиях экселя. Если все-таки есть желание загрузить такое количество записей в грид одним махом, то.... лучше этого не делать, потому что пользователь уснет раньше, чем загрузится грид. Лучше тогда использовать динамическую подгрузку данных в грид (по мере прокрутки). Если не ошибаюсь, DataGrid делает это самостоятельно. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2010, 22:49 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Shocker.ProBobax012посоветуйте грид который бы мог вместить 65536 записей, т.к. именно столько максимальное количество строк в Excel. И опять лучше переделать ТЗ Потому что никакому пользователю не требуется столько записей в гриде. Обычно используют постаничный вывод или фильтр. А еще, это ограничение на количество строк отсутствует в последних версиях экселя. Если все-таки есть желание загрузить такое количество записей в грид одним махом, то.... лучше этого не делать, потому что пользователь уснет раньше, чем загрузится грид. Лучше тогда использовать динамическую подгрузку данных в грид (по мере прокрутки). Если не ошибаюсь, DataGrid делает это самостоятельно. Конечно извиняюсь за глупый вопрос, что подразумевается под ТЗ?)) Буду пробовать DataGrid ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2010, 23:00 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Bobax012Конечно извиняюсь за глупый вопрос, что подразумевается под ТЗ?)) ТЗ - техзадание. То есть то, для реализации чего пишется программа. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2010, 23:17 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
> Автор: Shocker.Pro > А еще, это ограничение на количество строк отсутствует в последних версиях экселя. Оно присутствует, но достаточно велико, что-бы хватило на несколько лет P.S. У меня есть спецы, которым "габариты" строк и столбцов 2007-го екселя уже впритирочку :) Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2010, 10:37 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
Игорь Горбонос> Автор: Shocker.Pro > А еще, это ограничение на количество строк отсутствует в последних версиях экселя. Оно присутствует, но достаточно велико, что-бы хватило на несколько лет Я же сказал " это ограничение", а не "ограничение". То есть 2^16. Игорь ГорбоносP.S. У меня есть спецы, которым "габариты" строк и столбцов 2007-го екселя уже впритирочку :) По-моему, эти "спецы" забыли вовремя перейти на СУБД ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2010, 10:42 |
|
Как вытащить определенные данные из Excel и вставить их в таблицы Access
|
|||
---|---|---|---|
#18+
> Автор: Shocker.Pro > Я же сказал "это ограничение", а не "ограничение". То есть 2^16. Ты сказал "отсутствует", а совсем не "ограничение" и тем более "это" > По-моему, эти "спецы" забыли вовремя перейти на СУБД И не перейдут Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2010, 10:51 |
|
|
start [/forum/topic.php?all=1&fid=60&tid=2159130]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
35ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 171ms |
0 / 0 |