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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Access 2003: помогите с составлением запроса на импорт данных из Excel таблиц
 
 автор: bosse-sl   (05.04.2013 в 01:45)   личное сообщение
31 Кб.
 
 

Помогите, пожалуйста.

Как можно делать импорт данных из файлов Excel таблиц во временную таблицу Access-а и показывать эти данные на форме

  Ответить  
 
 автор: snipe   (05.04.2013 в 09:56)   личное сообщение
 
 

запросом тут просто так не вытащишь
надо код писать

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


SELECT Mid(T1.F1,8) AS Заявка, T2.F1 AS Номер, T2.F2 AS Контейнер, T2.F3 AS Лот, T2.F4 AS Марка, T2.F5 AS Модель, T2.F6 AS Тип, T2.F7 AS ВремяРазгр, T2.F8 AS Коносамент, T2.F10 AS СудноРейс, T2.F13 AS ДатаРазгрузки
FROM [A13:A13] AS T1, [A22:M200] AS T2 IN 'C:\Заявка № К 13071 Optima.xls'[Excel 8.0;HDR=No]
WHERE (((T2.F1)>0));

Этот запрос вернет вам почти то, что вы хотите. Почти, потому что:
1. Значения из ячеек, объединяющих несколько строк, выводятся 1 раз;
2. Дату разгрузки надо вытягивать из текста примечания. Если это всегда 8 последних символов, то не сложно, а если нет?

Путь к файлу подставьте свой.

  Ответить  
 
 автор: bosse-sl   (05.04.2013 в 17:57)   личное сообщение
 
 

Огромное Вам спасибо.

Можно еще вопрос: а нельзя ли каким либо образом для T2.F3 проверять если поле пустое то подставлять из предыдущего?

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

Создайте модуль с этими функциями:

Function MyFunc1(Text, Mode)
Static PrevValue(1 To 3)
 If Len(Text) > 0 Then PrevValue(Mode) = Text
 MyFunc1 = PrevValue(Mode)
End Function

Function MyFunc2(Text)
Static PrevValue(1 To 2)
Dim strDate$
 If Len(Text) > 0 Then
    PrevValue(1) = Text
    strDate = Right(Text, 8)
    If IsDate(strDate) Then
        PrevValue(2) = CDate(strDate)
    Else
        PrevValue(2) = Null
    End If
 End If
 MyFunc2 = PrevValue(2)
End Function

А в запросе:

SELECT Mid(T1.F1,8) AS Заявка, T2.F1 AS Номер, T2.F2 AS Контейнер, MyFunc1(T2.F3,1) AS Лот, T2.F4 AS Марка, T2.F5 AS Модель, T2.F6 AS Тип, T2.F7 AS ВремяРазгр, MyFunc1(T2.F8,2) AS Коносамент, MyFunc1(T2.F10,3) AS СудноРейс, MyFunc2(T2.F13) AS ДатаРазгрузки
FROM...

  Ответить  
 
 автор: bosse-sl   (06.04.2013 в 00:22)   личное сообщение
21 Кб.
 
 

Спасибо получилось даже лучше чем ожидал

Помогите еще в одном вот нашел http://hiprog.com/index.php?option=com_content&task=view&id=468&Itemid=35
для подстановки в путь запроса, но разобраться как сделать чтобы заработало не смог.
Хотел сделать поле в котором отображалось бы имя и путь файла и кнопку с диалогом открытия для поиска того самого файла.

А еще набрёл на пример но сделать чтобы показывало файлы с другими расширениями не сумел

Заранее спасибо

  Ответить  
 
 автор: bosse-sl   (10.04.2013 в 22:22)   личное сообщение
 
 

Помогите пожалуйста
Возникла следующая проблема


SELECT .......
FROM [A13:A13] AS T1, [A22:M200] AS T2 IN 'C:\Заявка № К 13071 Optima.xls'[Excel 8.0;HDR=No] 
............


Подскажите как сделать из [A22:M200] вот что - [A22:B200; D22:M200], а то с одними заявками все было хорошо, но как всегда есть но, попалась. Вернее существует видов пять, четыре вроде победил а в этой столбец лишний

  Ответить  
 
 автор: snipe   (11.04.2013 в 08:02)   личное сообщение
 
 

вот вот
про что я вам и говорил
что код надо написать

мое МЫШЬление работает так
скидать все файлы в одну папку
запустить цикл перебора файлов
подключаться к каждому файлу
определять границы диапазона
затягивать инфу в базу
по окончании удалить все файлы из папки

а запрос можно переписать

Currentdb.querydefs("Имя запроса").sql="Select........from......"

  Ответить  
 
 автор: bosse-sl   (11.04.2013 в 09:51)   личное сообщение
8 Кб.
 
 


а запрос можно переписать


Конечно можно.

В принципе я знаю что: 1 заявка имеет границы A22:F500 и I22:I500 и L22:L500
2 заявка имеет те же границы
а вот 3 заявка - границы A22:B500 и D22:G500 и J22:J500 и M22:M500
Все остальные данные лишние, смысла их гонять с места на место нет.

  Ответить  
 
 автор: bosse-sl   (20.04.2013 в 12:36)   личное сообщение
12 Кб.
 
 

Мне нужно Ваше МЫШЬление:

Есть папка с файлами: grid.xls, grid (1).xls, grid (2).xls, ... grid (n).xls
Помогите сделать

цикл перебора файлов
подключаться к каждому файлу
определять границы диапазона
затягивать инфу в базу
по окончании удалить все файлы из папки

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

Так, как вы хотите - нельзя. А цель, всего-то, исключить столбец C.
При формировании текста запроса указывайте весь диапазон, а при перечислении имен полей в одном случае указываете F3, а в другом - F4. Также и другие поля.

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