Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Импорт данных из экселя а эксель / 25 сообщений из 41, страница 1 из 2
08.02.2010, 15:32
    #36455663
Импорт данных из экселя а эксель
Имеется таблица эксель с частичными данными из базы данных. Нужно создать запрос в базе данных, отобрать список удовлетворяющих условию отбора. Но в БД данных после отбора будет в два раза больше данных чем в екселе.И нужно извлечь данные из экселя по первому и третьему столбцу и сравнить их с полученным запросом. Если значения совпадают, то в эксель нужно добавить сумму с запроса.
Как это лучше сделать?
Можно ли это просто с помощью запроса реализовать?
Сам запрос для отбора данных я смогу сделать, вот по поводу связки Экселя с БД, я незнаю.
...
Рейтинг: 0 / 0
08.02.2010, 15:37
    #36455673
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт данных из экселя а эксель
Ну раз запрос сами сможете написать....

Вы можете подключиться к файлу экселя как к базе данных. Используйте ODBC - там есть провайдер для экселевских файлов
...
Рейтинг: 0 / 0
08.02.2010, 16:51
    #36455891
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт данных из экселя а эксель
Shocker.Pro,

зачем ODBC ? EXcel по OLEDB отлично работает.
...
Рейтинг: 0 / 0
08.02.2010, 22:38
    #36456433
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт данных из экселя а эксель
Александр ВеликийМожно ли это просто с помощью запроса реализовать?даАлександр ВеликийКак это лучше сделать?
при помощи microsoft query
...
Рейтинг: 0 / 0
09.02.2010, 08:15
    #36456650
Импорт данных из экселя а эксель
А как это реализовать с помощью SQL Query Analyzer?
...
Рейтинг: 0 / 0
09.02.2010, 08:40
    #36456669
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт данных из экселя а эксель
Александр ВеликийА как это реализовать с помощью SQL Query Analyzer?
Импорт данных из Excel в SQL Server
Ключевое слово для вас - openrowset .
...
Рейтинг: 0 / 0
09.02.2010, 08:52
    #36456681
Импорт данных из экселя а эксель
Вот имеется таблица эксель и имеется запрос. Связь по двум столбцам. И нужно добавить данные В эксель, в следующие столбцы.
...
Рейтинг: 0 / 0
09.02.2010, 08:56
    #36456685
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт данных из экселя а эксель
Александр Великий,

получается содержимое этого файла это параметры для запроса (т.е. 2 записи одной строки это ключ для join-а)? Так?

Если да, то пишите процедуру, которая поочередно читает параметры запроса из нужных ячеек (построчно в цикле) и вставляет это в параметры SQL запроса. Возвращаемый результат пишите в нужные ячейки.

В зависимости от используемого драйвера методика разная, но суть не меняется.
Например с ADO это сделать удобнее.
...
Рейтинг: 0 / 0
09.02.2010, 09:00
    #36456687
Импорт данных из экселя а эксель
вот пытаюсь написать запрос: select *
from OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\TMC_C1_2009.xls',zC1_xls)
у меня пишет Msg 7415, Level 16, State 1, Line 1
Ad hoc access to OLE DB provider 'Microsoft.Jet.OLEDB.4.0' has been denied. You must access this provider through a linked server.
Что я делаю не так?
...
Рейтинг: 0 / 0
09.02.2010, 09:07
    #36456692
Импорт данных из экселя а эксель
ShamanusАлександр Великий,

получается содержимое этого файла это параметры для запроса (т.е. 2 записи одной строки это ключ для join-а)? Так?

Если да, то пишите процедуру, которая поочередно читает параметры запроса из нужных ячеек (построчно в цикле) и вставляет это в параметры SQL запроса. Возвращаемый результат пишите в нужные ячейки.

В зависимости от используемого драйвера методика разная, но суть не меняется.
Например с ADO это сделать удобнее.
Да это так. Я вот тож хочу сделать процедуру, но для этого надо хотя бы попробовать получить данные с Экселя. А потом уже дело должно пойти. Просто я с импотртом данных не сталкивался, поэтому пока сложно определится и как это сделать.
Поподробнее про шаги выполнения всего, можно.
...
Рейтинг: 0 / 0
09.02.2010, 09:27
    #36456726
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт данных из экселя а эксель
Александр Великий,

Ну если я верно понял то у Вас вот такая связка.
Есть файл Excel содержащий N строк и M столбцов

В каждой строке есть 2 поля составляющих ключ например Пол - Возраст

Есть файл excel содержащий в чистом виде данные Пол-Возраст-"Уровень Дохода"

Вам нужно в Ваш файл записать в столбик M+1 "Уровень дохода" для той группы которая содержится в данной строке.

Так?
...
Рейтинг: 0 / 0
09.02.2010, 09:32
    #36456735
Импорт данных из экселя а эксель
ShamanusАлександр Великий,

Ну если я верно понял то у Вас вот такая связка.
Есть файл Excel содержащий N строк и M столбцов

В каждой строке есть 2 поля составляющих ключ например Пол - Возраст

Есть файл excel содержащий в чистом виде данные Пол-Возраст-"Уровень Дохода"

Вам нужно в Ваш файл записать в столбик M+1 "Уровень дохода" для той группы которая содержится в данной строке.

Так?
Не совсем так есть
Есть файл excel содержащий в чистом виде данные Пол-Возраст-"Уровень Дохода"- есть база данных с этими данными. Вот мне нужно из БД отобрать их и вложить в эксель.
...
Рейтинг: 0 / 0
09.02.2010, 09:40
    #36456747
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт данных из экселя а эксель
Александр Великий,

Тогда ничего не понял. Мне показалось что БАЗА- это просто другой файл Excel.

Т.е. Вам нужно из одного Excel файла импортировать в другой ВСЮ инфу?
...
Рейтинг: 0 / 0
09.02.2010, 09:42
    #36456753
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт данных из экселя а эксель
Александр Великий,

Поясните что есть БД?
...
Рейтинг: 0 / 0
09.02.2010, 09:48
    #36456770
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт данных из экселя а эксель
Shamanus,

Автор упоминал SQL Query Analyzer

Следовательно - MSSQL
...
Рейтинг: 0 / 0
09.02.2010, 09:50
    #36456776
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт данных из экселя а эксель
Shocker.ProShamanus,

Автор упоминал SQL Query Analyzer

Следовательно - MSSQL

просто меня пока смущает название темы Импорт данных из экселя а эксель
Просто если так, то описывать автору коннект к другому Excel файлу средствами VBA это запудрить мозги, все можно реализовать куда проще.
...
Рейтинг: 0 / 0
09.02.2010, 09:54
    #36456782
Импорт данных из экселя а эксель
ShamanusShocker.ProShamanus,

Автор упоминал SQL Query Analyzer

Следовательно - MSSQL

просто меня пока смущает название темы Импорт данных из экселя а эксель
Просто если так, то описывать автору коннект к другому Excel файлу средствами VBA это запудрить мозги, все можно реализовать куда проще.
объясни как проще?
Желательно создать процедуру, запрос в SQL Query Analyzer. Который будет импортировать данные с экселя и сравнивать их с запросом из базы данных
...
Рейтинг: 0 / 0
09.02.2010, 09:54
    #36456785
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт данных из экселя а эксель
Shamanus,

из первого сообщения:
"Нужно создать запрос в базе данных"
"по поводу связки Экселя с БД"

видимо автору нужно почетче сформулировать среду, в которой он работает
...
Рейтинг: 0 / 0
09.02.2010, 09:57
    #36456791
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт данных из экселя а эксель
Александр ВеликийЖелательно создать процедуру, запрос в SQL Query Analyzer. Который будет импортировать данные с экселя и сравнивать их с запросом из базы данных

Ну сам запрос вы сказали, что напишете.

А из QA открывать через OPENROWSET или через Linked Server. А если это операция разовая, можно не морочиться, просто провести один раз импорт эксельного файла в БД через мастер и работать уже там.

П.С. Имейте ввиду, что путь к файлу у вас не на том компе, где QA, а на том компе, где сервер.
...
Рейтинг: 0 / 0
09.02.2010, 10:19
    #36456855
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт данных из экселя а эксель
Александр Великий
Желательно создать процедуру, запрос в SQL Query Analyzer. Который будет импортировать данные с экселя и сравнивать их с запросом из базы данных

ну если так то тут помочь не смогу
могу помочь в импорте данных из MSSQL в Excel
или из Excel в Excel (без открытия файла)
...
Рейтинг: 0 / 0
09.02.2010, 10:21
    #36456857
Импорт данных из экселя а эксель
Shocker.ProАлександр ВеликийЖелательно создать процедуру, запрос в SQL Query Analyzer. Который будет импортировать данные с экселя и сравнивать их с запросом из базы данных

Ну сам запрос вы сказали, что напишете.

А из QA открывать через OPENROWSET или через Linked Server. А если это операция разовая, можно не морочиться, просто провести один раз импорт эксельного файла в БД через мастер и работать уже там.

П.С. Имейте ввиду, что путь к файлу у вас не на том компе, где QA, а на том компе, где сервер.
А как прописать тогда путь к файлу не на сервере.
...
Рейтинг: 0 / 0
09.02.2010, 10:27
    #36456874
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт данных из экселя а эксель
Александр ВеликийА как прописать тогда путь к файлу не на сервере.

В смысле? Как и к любому другому файлу на сетевом ресурсе.
...
Рейтинг: 0 / 0
09.02.2010, 10:27
    #36456877
Импорт данных из экселя а эксель
ShamanusАлександр Великий
Желательно создать процедуру, запрос в SQL Query Analyzer. Который будет импортировать данные с экселя и сравнивать их с запросом из базы данных

ну если так то тут помочь не смогу
могу помочь в импорте данных из MSSQL в Excel
или из Excel в Excel (без открытия файла)
Вот давайте объясните ситуацию из Excel в Excel (без открытия файла).
...
Рейтинг: 0 / 0
09.02.2010, 10:32
    #36456889
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт данных из экселя а эксель
Александр Великий,

один к одному? Могу дать процедуру в массив пишет содержимое листа Excel.
...
Рейтинг: 0 / 0
09.02.2010, 10:38
    #36456908
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт данных из экселя а эксель
Александр Великий,

искал

Код: 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.
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.
63.
64.
65.
Sub GetExcel(strSourceFile As String, strSQL As String, ByRef Massiv() As Variant)
Dim cn As ADODB.Connection
Dim rstTemp As ADODB.Recordset

Set cn = New ADODB.Connection
cn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DriverId=790;ReadOnly=True;" & "DBQ=" & strSourceFile & ";"
Set rstTemp = New ADODB.Recordset

rstTemp.Open strSQL, cn, adOpenForwardOnly, adLockReadOnly, adCmdText

Erase Massiv
    x =  1 
    y =  0 
    With rstTemp
        Do While Not .EOF
                     .MoveNext
                      x = x +  1 
                      If Not (.EOF) And x =  2  Then
                    
                        On Error GoTo MyLa
                            For i =  0  To  256 
                            If Not IsNull(.Fields(i)) Then y = y +  1 
                            Next i
MyLa:

                      End If
            Loop
    End With

ReDim Massiv( 1  To x,  1  To y) As Variant

rstTemp.MoveFirst
                For i =  0  To y -  1 
                Massiv( 1 , i +  1 ) = rstTemp.Fields(i).Name
                Next i
            
            For j =  0  To x -  2 
                For i =  0  To y -  1 
                Massiv(j +  2 , i +  1 ) = rstTemp.Fields(i)
                Next i
            rstTemp.MoveNext
            Next j

rstTemp.Close
cn.Close

Set rstTemp = Nothing
Set cn = Nothing

End Sub


Sub DOIT()
Dim strSourceFile As String, strSQL As String, Massiv() As Variant
strSourceFile = "E:\Test\1.xls"
strSQL = "SELECT * FROM `Лист1$`;"

Call GetExcel(strSourceFile, strSQL, Massiv)

For i =  1  To UBound(Massiv,  1 )
    For j =  1  To UBound(Massiv,  2 )
        Sheets( 1 ).Cells(i, j) = Massiv(i, j)
    Next j
Next i

End Sub
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Импорт данных из экселя а эксель / 25 сообщений из 41, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]