Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.07.2012, 11:42   #1
leroi
Новичок
Джуниор
 
Регистрация: 17.07.2012
Сообщений: 4
По умолчанию Поиск в excel

Доброго времени суток! Очень нужна помощь, в таком вопросе
Структура данных в excel представлена в приложении.

Вопрос:
как получить все даты следующие за полем "начало аварии"???

начало аварии:

30.01.2012 8:57
30.01.2012 9:02
30.01.2012 9:10
30.01.2012 9:17
30.01.2012 9:25

не могу догнать. просьба не смеяться, для меня это действительно трудно
Изображения
Тип файла: jpg Безымянный.jpg (51.1 Кб, 149 просмотров)

Последний раз редактировалось leroi; 17.07.2012 в 11:46.
leroi вне форума Ответить с цитированием
Старый 18.07.2012, 12:45   #2
leroi
Новичок
Джуниор
 
Регистрация: 17.07.2012
Сообщений: 4
По умолчанию

Люди! Что совсем никаких идей?
leroi вне форума Ответить с цитированием
Старый 18.07.2012, 12:55   #3
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Дык если известен номер ячейки начала, то в чём проблема? Открываешь эксель и в цикле считываешь столбец.
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 18.07.2012, 13:05   #4
astecenko
Homo Interneticus
Форумчанин
 
Аватар для astecenko
 
Регистрация: 04.03.2011
Сообщений: 611
По умолчанию

Что Вы подразумеваете под "получить даты"? Их куда-то сохранить, скопировать, вывести?
Существует ли какой-то признак конца строк с датами (пустая ячейка, какае-то строка и т.п.)?
astecenko вне форума Ответить с цитированием
Старый 18.07.2012, 13:25   #5
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Не люблю работать с фотошопом.
Нет файла.подганяйте под себя
Код:
Public Function ADO_R_Dmitry(ByVal strSql$, ByVal FilePath$, ByVal OutputRange, _
 ByVal FieldsName As Boolean, ByVal OutputFieldsName As Boolean)
'==============================================================================
'*Описание функции : Возвращает набор записей Recordset с первой ячейки адреса,
'* указанного диапазона.
'*strSql - Конструкция SQL  запроса.
'* FilePath - Полный путь к файлу включая имя и расширение.
'* OutputRange - адрес ячеки с которой начинается вывод данных.
'* FieldsName - используются или нет заголовки столбцов (True - False)
'* OutputFieldsName - вывод данных с заголовками или без (True - False), _
'* если FieldsName=False, заголовки не выводятся.
'==============================================================================
'* Автор R Dmitry (Дмитрий Русак dg_rusak@mail.ru skype: RDG_Dmitry)          |
'* WM:_R269866874234 U144446690328                                            |
'==============================================================================
Dim sCon As String, FieldName As String
Dim rs As Object, cn  As Object
Set rs = CreateObject("ADODB.Recordset")
Set cn = CreateObject("ADODB.Connection")
If FieldsName Then FieldName = "Yes" Else FieldName = "No"
Select Case CLng(Split(Application.Version, ".")(0))
    Case Is < 12
        sCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FilePath _
          & ";Extended Properties=""Excel 8.0;HDR=" & FieldName & ";IMEX=1"";"
    Case Is >= 12
        sCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & FilePath _
        & ";Extended Properties=""Excel 12.0;HDR=" & FieldName & ";IMEX=1"";"
End Select

cn.Open sCon
If Not cn.State = 1 Then Exit Function
Set rs = cn.Execute(strSql)
If Not FieldsName Then OutputFieldsName = False
 If OutputFieldsName Then
    For i = 0 To rs.Fields.Count - 1
    OutputRange.Offset(0, i) = rs.Fields(i).Name
    Next
    Set OutputRange = OutputRange.Offset(1, 0)
 End If
OutputRange.CopyFromRecordset rs
rs.Close:  cn.Close
Set cn = Nothing: Set rs = Nothing
End Function



Sub Go_Дата()
 M_name$ = "Лист1$F1:F10000"

 Sql_S = "SELECT F1 FROM [" & M_name$ & "]  WHERE IsDate(F1)=True "

ADO_R_Dmitry Sql_S, "C:\XXXXXXX.xlsx", Лист1.Cells(1, 1), False, False

End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 18.07.2012, 13:39   #6
leroi
Новичок
Джуниор
 
Регистрация: 17.07.2012
Сообщений: 4
По умолчанию

to Valio, astecenko: Весь файл excel содержит несколько вот таких блоков подряд(как в приложении), и нужно для каждого номера аварии(в файле выделен красным) получить список дат начала аварии и занести в БД Access.
Проблема состоит в том как организовать цикл? У меня уже есть один цикл, где я ищу поле "Начало аварии:". Как поступить дальше? Организовать второй цикл для выведения дат внутри первого или как?

for i:=1 to XL.Sheets[1].UsedRange.Rows.Count-1 do
begin
if XL.Range['AK' + inttostr(i)].Value= Начало аварии:' then
begin
.......................
end;
leroi вне форума Ответить с цитированием
Старый 18.07.2012, 13:40   #7
leroi
Новичок
Джуниор
 
Регистрация: 17.07.2012
Сообщений: 4
По умолчанию

to doober: Спасибо! Покумекаю как подогнать под себя
leroi вне форума Ответить с цитированием
Старый 18.07.2012, 14:37   #8
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Цитата:
и занести в БД Access
Пишите процедуры в Access и запросом получайте отфильтрованные данные и сразу заполняйте таблицу
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск по Excel NewGeneration Общие вопросы .NET 0 21.05.2012 15:44
Поиск в Excel 2-deshka Microsoft Office Excel 5 20.01.2012 19:24
Почему Excel 2010 выполняет поиск гораздо медленнее чем Excel 2003 Sprat Microsoft Office Excel 1 25.10.2011 05:34
поиск в Excel Sega22 Общие вопросы Delphi 1 31.05.2010 09:55
Поиск в Excel Tirendus Общие вопросы Delphi 3 21.01.2010 10:39