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

Форум: MS ACCESS

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

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

 
 

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

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

тема: как программно удалить пустые строчки из таблицы
 
 автор: Ammad   (13.10.2009 в 14:44)   личное сообщение
 
 

Access 2003.
Цель: Как обычно нужно данные из excel файла добавить к данным в access.
Нюансы: Есть таблица связанная с файлом *.xls. Но в таблицу *.mdb также импортируются и пустые строки, т.к. в *.xls забита формула на 50000 строк (значений нет, а формулы есть). Поэтому сразу добавить данные из Связанной Таблицы в Основную Таблицу нельзя, дабы не копировать каждый раз по 30000…40000 пустых строчек. А удалить пустые строчки из Связанной таблицы нельзя.
Следовательно, есть в access запрос, который создаёт копию Связанной Таблицы, и вот из неё и нужно удалить программным путём пустые строки.
Подскажите как это сделать?
Может оно легче было бы написать код прямой загрузки данных из файла в нужную таблицу (исключая пустые строки), но… пока нет таких знаний :)

  Ответить  
 
 автор: osmor   (13.10.2009 в 15:08)   личное сообщение
 
 

Следовательно, есть в access запрос, который создаёт копию Связанной Таблицы


А в этом запросе сразу указать условие что бы сразу отбирал только записи с заполненными полями нельзя?
Тогда добавятся только нужные записи и удалять ничего не придется

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

Можно не делать "копию Связанной Таблицы", а сразу добавлять записи с непустыми полями из Связанной таблицы в Основную Таблицу:
INSERT INTO [Основная Таблица] ... SELECT ... FROM [Связанная Таблица] As t WHERE (((t.Поле1) Is Not Null));


Можно обойтись и без связанной таблицы (например, импорт из файла C:\Book1.xls, с листа Лист1:
INSERT ... FROM [Лист1$] As t IN 'C:\Book1.xls'[Excel 8.0;] WHERE (((t.Поле1) Is Not Null));

  Ответить  
 
 автор: Ammad   (13.10.2009 в 15:56)   личное сообщение
 
 

Я в access профан, как выглядит полностью тело кода без пропусков?
если например:
"C:\Book1.xls", с листа "Лист1" данные из области A1:F10000 (где первая строчка - заголовки идентичные заголовкам в таблице access; а так же последние 8000 строк могут быть пустыми) =>(добавление в) "dateSale" (название Осноной Таблицы в access)

  Ответить  
 
 автор: Анатолий (Киев)   (13.10.2009 в 16:12)   личное сообщение
 
 

INSERT INTO [dateSale] SELECT * FROM [Лист1$A1:F10000] As t IN 'C:\Book1.xls'[Excel 8.0;HDR=True;IMEX=1] WHERE (((t.[Поле1]) Is Not Null));

Вместо "Поле1" укажите имя любого столбца, где есть пустые ячейки.

  Ответить  
 
 автор: Ammad   (13.10.2009 в 17:29)   личное сообщение
 
 

Private Sub Кнопка2_Click()

INSERT INTO [newSALE] SELECT * FROM [data$A1:F10000] As t IN 'с:\newSALE.xls' [Excel 8.0;HDR=True;IMEX=1] WHERE(((t.[Article]) Is Not Null))

End Sub

так? не работает. понимаю, что не так написано. А как нужно? Только полностью.

  Ответить  
 
 автор: Анатолий (Киев)   (14.10.2009 в 11:27)   личное сообщение
 
 

Насмешили...

Private Sub Кнопка2_Click() 

CurrentDb.Execute "INSERT INTO [newSALE] SELECT * FROM [data$A1:F10000] As t IN 'с:\newSALE.xls' [Excel 8.0;HDR=True;IMEX=1] WHERE(((t.[Article]) Is Not Null))" 

End Sub

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