Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверка таблиц Excel 
:(
    Опции темы
FRC
Дата 21.10.2006, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 15.10.2006

Репутация: нет
Всего: нет



Доброго времени суток!
Есть Excel-евская таблица с данными, название таблицы состоит из названия формы таблицы (012) и периода (0609-где 06 это год а 09 месяц) нужно проверить данные согласно некоторым условиям (например: строка 5 равна суме строк 7и 8) и в случае не удовлетворения этого требования выводится сообщение с указанием ошибки в каком именно столбце таблицы она произошла! 
Таблицы могут содержать в себе несколько десятков столбцов и строк. 
Так же нужно проверить соответствие с предыущим месяцем (0608) такого же файла.
Если у кого есть какие-нибудь мысли по этому вопросу пожалуста поделитесь!
PM MAIL   Вверх
Naghual
Дата 21.10.2006, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



Мысль одна. Не заморачиватся в Экселе - в нем практически невозможно помешать пользователю ввести всякую чуш в нужном месте!

Эта задачка уже на БД тянет!

Это сообщение отредактировал(а) Naghual - 21.10.2006, 13:41


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
FRC
Дата 21.10.2006, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 15.10.2006

Репутация: нет
Всего: нет



Naghual, 
Цитата

Эта задачка уже на БД тянет!

Если я правльно понял нужно перекинуть все данные в базу Access и там уже творить с данными все что дуже угодно.
Но возможно ли будет сделать сравнение с предыдущим периодом? (такой же таблицей но за предыдущий месяц) 

PM MAIL   Вверх
Naghual
Дата 21.10.2006, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



Будет лучше, если ввод данных осуществлять непосредственно в БД. В ней же эти данные и обрабатывать.
Ну и конечно, уже готовые экселевские данные импортнуть.

Добавлено @ 15:11 
проверка валидности данных осуществляется непосредственно во время ввода данных, исключается возможность ввода не того ТИПА данных и нарушения структуры.


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
FRC
Дата 21.10.2006, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 15.10.2006

Репутация: нет
Всего: нет



Naghual,  Хочу организовать следующим образом: Все данные в файле Excel расположенные в столбцах при импорте в Access должны расположиться в одну строку, где имя строки будет определять номер файла, а название таблицы период содержащихся в ний данных, по моему мнению это должно облегчить сравнение с предыдущим периодом. Столкнулся с проблемой при переносе данных из Excelя в таблицу Access, данные не распологаются так как описано выше, что сделать???
PM MAIL   Вверх
mihanik
Дата 24.10.2006, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 11
Всего: 109



Naghual, FRC!!!

Я что-то недопонял.
Тут необходимо, чтобы только тип данных совпадал?
Если только это условие, то действительно, в БД это сделать просто.
Хотя и в ехеле всё это делается через меню Данные/Проверка...

Если же нужно проверять правильность введения данных и соответствие с уже имеющимися данными в других ячейках, то для начинающего именно в ехеле будет проще.

Самый постой способ, - это условное форматирование.
Да и использование условий возможно...

Так что... 

Короче!
Ставь точнее задачу и уже решай сам, в чём эту задачу будет решать проще...



--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Naghual
Дата 24.10.2006, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



Сделай програмный импорт.


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
FRC
Дата 26.10.2006, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 15.10.2006

Репутация: нет
Всего: нет



mihanik, мне необходимо автоматически (при нажатии на кнопку) перенести данные содержащиеся в Екселе (данные содержатся в столбцах и строках 10х70) в таблицу Ассес. Данные должны быть расположены в Ассесе в одну строку! Данные из другого файла Ексель должны расположиться в строке ниже и т.д.
PM MAIL   Вверх
mihanik
Дата 26.10.2006, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 11
Всего: 109



FRC!!!

Технически и программно это несложно!

Только ты представь себе, что у тебя в одной записи будет 10х70=700 полей !!! smile 

Это не есть хорошо!!!
Ты хорошенько задачу продумай, составь грамотное ТЗ...

Будем решать вместе.  smile 


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
FRC
Дата 26.10.2006, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 15.10.2006

Репутация: нет
Всего: нет



mihanik, 
Цитата
 Технически и программно это несложно!
Может небольшой кусочек кода по импорту данных? 

PM MAIL   Вверх
mihanik
Дата 27.10.2006, 07:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 11
Всего: 109



Сразу скажу, что в объектной модели Access работал не много.

Что-то типа такого получается...

Код

    Dim MyDB As DAO.Database
    Dim MyRecordSet As DAO.Recordset

    ' Подключаемся к базе данных 
    strConnect = ";database=" & strDBPath & "\" & strDBName
    Set MyDB = OpenDatabase("", True, False, strConnect)
    Set MyRecordSet = MyDB.OpenRecordset( strTableName, dbOpenDynaset)

'
' Здесь идут какие-то действия с RecordSet
'

    ' Отключаемся от базы данных
    MyRecordSet.Close
    Set MyRecordSet = Nothing
    MyDB.Close
    Set MyDB = Nothing


Если что, Naghual и Flotsky тебе лучше смогут помоч.
Я с базами данных не очень давно работаю...

Добавлено @ 07:11 
strConnect может изменяться в зависимости от того, в каком формате у тебя храниться БД...

Добавлено @ 07:15 
А если надо создать БД программно, то делаем так...

Код

'''''''''''''''''''''
' Создаём базу даных в указанном месте
'''''''''''''''''''''
Sub CreateMyDB(strFN As String)
   Dim newDB As DAO.Database
   Dim newTD As DAO.TableDef
   Dim newFD As DAO.Field
   Dim NewID As DAO.Index

On Error GoTo CreateDatabase_Error
   
   Set newDB = DAO.Workspaces(0).CreateDatabase(strFN, dbLangGeneral, dbVersion30)
   Set newTD = newDB.CreateTableDef("Respondents")
   
   ' Создаём 1-е поле...
   Set newFD = newTD.CreateField("IDNumber", dbText, 10)
   newFD.AllowZeroLength = False
   newFD.Required = True
   newTD.Fields.Append newFD
   
' Создаём 2-е поле...
   Set newFD = newTD.CreateField("SenderEMail", dbText, 64)
   newFD.AllowZeroLength = False
   newFD.Required = True
   newTD.Fields.Append newFD
' ........

   '  Создаём n-е поле...
   Set newFD = newTD.CreateField("SentOn", dbDouble)
   newFD.Required = True
   newTD.Fields.Append newFD
    
 
   newDB.TableDefs.Append newTD
   newDB.TableDefs.Refresh
   
   newDB.Close
   
CreateDatabase_OK:
   Exit Sub
   
CreateDatabase_Error:
   If DAO.Errors.Count > 0 Then
       MsgBox DAO.Errors(0).Number & ":" & DAO.Errors(0).Description, vbCritical + vbOKOnly + vbApplicationModal
   Else
       MsgBox Err.Number & ":" & Err.Description, vbCritical + vbOKOnly + vbApplicationModal
   End If
   Resume CreateDatabase_OK
End Sub



Часть этого кода нашёл поиском по форуму...


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0770 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.