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

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

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2011, 17:39   #11
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

не берет -----увы
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 26.01.2011, 17:47   #12
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Ну, раз пошла другая пьянка..
1.
Цитата:
Сообщение от shanemac51 Посмотреть сообщение
--сохранить как .....
Пожалуй у Вас не получится...

2.
Цитата:
Сообщение от shanemac51 Посмотреть сообщение
-преобразовать базу данных ...
Вот этот вариант должен получиться.

3. У меня MS Access 2007 (ненавижу его ленту ) только по выходным, но по моему там есть установка с каким форматом работать по умолчанию.
OlegVE вне форума Ответить с цитированием
Старый 26.01.2011, 17:49   #13
mortal2010
Пользователь
 
Регистрация: 20.01.2011
Сообщений: 18
По умолчанию

Цитата:
Сообщение от shanemac51 Посмотреть сообщение
не берет -----увы
Не удается к сожалению привести к формату предыдущей версии, т.к. задействованы возможности новой версии...
Ну я буду рестайлинг делать, с нуля, а там уже можно выставить 2003-2007
Позже выложу - там еще насоветовали много на другом форуме - структуру базы полностью менять нужно.
А мне щас просто быро нужен рабочий вариант, типа черновой.
mortal2010 вне форума Ответить с цитированием
Старый 26.01.2011, 17:55   #14
mortal2010
Пользователь
 
Регистрация: 20.01.2011
Сообщений: 18
По умолчанию

Цитата:
Сообщение от OlegVE Посмотреть сообщение
Ну, раз пошла другая пьянка..
Нет, Ваш совет кстати- это будет рабочий вариант.
А потом я буду менять структуру с нуля - типа другая база будет совсем.
Ну с ней тоже возни будет много - я недавно начал БД и SQL ковырять, поэтому обязательно обращусь за советом)
Еще раз большое спасибо.
mortal2010 вне форума Ответить с цитированием
Старый 26.01.2011, 18:03   #15
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

По вопросу shanemac51
По преобразованиям версий, можно посмотреть (на английском) "Convert an Access 2007 database to an earlier file format"

http://office.microsoft.com/en-us/ac...010230822.aspx

До свидания.
OlegVE вне форума Ответить с цитированием
Старый 26.01.2011, 18:51   #16
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте mortal2010.
"..Стоп,стоп,стоп.." - а никто никуда не идет, тем более образец выложенный Вами мало кому доступен. (формат подкачал, более приемлем А2003)
Не видя образца, судя по описанию структуры, могу сказать - она не лучшая.
"горизонтальный" табель более похож на привычную таблицу (как в Excel) и это его единственное "достоинство".
Но если Вы не планируете от него отказываться, решить задачу можно с применением пользовательской функции, и конструкция может выглядеть так
функция:
Код:
Function countDay(Id$, s$) As Integer
Const sQ = "SELECT * FROM Таблица1 WHERE Id=" 'запрос к таблице
'подразумевается структура таблицы SELECT Id, F1, F2, F3, ... F29, F30, F31, .... FROM Таблица1
Dim db As DAO.Database, rs As DAO.Recordset, i%
Set db = CurrentDb
Set rs = db.OpenRecordset(sQ + Id)
If Not rs.EOF Then
    For i = 1 To 31
        countDay = countDay + Abs(s = rs(i) & "")
    Next
End If
End Function
конструкция запроса, источника данных:
Код:
SELECT Id,  F1, F2, F3, ...F28, F29, F30, F31, countDay(Id, "k") as k, countDay(Id, "o") as o
FROM Таблица1;
выражение countDay(Id, "k") as k формирует в запросе поле подсчитывающее кол-во полей с литерой k, или любой другой.
Не желаете получать/отображать итог в запросе, поместите в поле формы в качестве источника данных выражение =countDay(Id; "k") и поле будет его отображать.

рекомендую выполнить корректировку Вашего кода:
Код:
...
Dim a As Integer
a = Daycount(Me.Поле11, Me.Поле5)
With Me.tabel.Form
    .[31].ColumnHidden = (a < 31)
    .[30].ColumnHidden = (a < 30)
    .[29].ColumnHidden = (a < 29)
End With
....
Надеюсь "выслушали" с удовольствием.
Успехов Вам.
Евгений.

P.S. для удобочитаемости выкладываемый код обязательно заключайте в тэги [соde] ... [/соde].

Последний раз редактировалось Teslenko_EA; 26.01.2011 в 19:15.
Teslenko_EA вне форума Ответить с цитированием
Старый 26.01.2011, 20:05   #17
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Здравствуйте Teslenko_EA
Хотел бы у Вас спросить как Пользователь у Профессионала. Чем мой код хуже? Дайте своё заключение. Я не вижу отличий, считаю просто копией, только подредактированной. У Вас ближе к конечному (даже Id$ более профессионально выглядит по сравнению с Id As String), у меня код для пояснения и отладки более расширенный.

Спасибо за пояснения. У меня просто не хватает опыта.
До свидания.

P.S. Одно отличие я увидел. С явным указанием DAO я "прокололся" на случай если ещё установлена ссылка на ADO.

Последний раз редактировалось OlegVE; 26.01.2011 в 20:20.
OlegVE вне форума Ответить с цитированием
Старый 26.01.2011, 23:01   #18
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте OlegVE.
"..не вижу отличий, считаю просто копией.." - если это попытка обвинить меня в плагиате, Вы не правы. У меня не было в планах "конкурировать" с Вашей конструкцией, я её просто не видел, так получилось.

Отвечаю на Ваш вопрос - "..Чем мой код хуже?.." :

VBA
"..код для пояснения и отладки более расширенный.."
Объект qr для чего(?) - для считывания из сохраненного запроса SQL конструкции и построения в нескольких строках кода конструкции источника рекордсета.
Рациональнее конструкцию изначально разместить в константе.
Табель учета рабочего времени подразумевает максимум 31 день, зачем передавать в функцию аргументы FieldStart и FieldEnd достаточно задать смещение по стартовому полю.
Проверка символа Rst.Fields(i).Value = FindIt, может привести функцию к неработоспособности, отсутствует защита от "пустоты" (NULL)
я бы не стал называть код "расширенным", он громоздкий и не абсолютно работоспособный.

SQL
конструкцию проще записать так:
Код:
SELECT ФИО, П1, П2, П3, П4, П5, 
MyCOUNT("ФИО",ФИО,"к",1,5) AS Итого_к, 
MyCOUNT("ФИО",ФИО,"в",1,5) AS Итого_в, 
MyCOUNT("ФИО",ФИО,"-",1,5) AS [Итого_-]
FROM tblТаблицаДляСчёта;
теперь взгляд не теряется на листинге и проще увидеть её бесперспективность.
в качестве аргумента ID_ объявленного как Variant(?) используется текстовое значение поля ФИО
..WHERE " & ID_FieldName & " = " & """" & ID_ & """" & ";"..
Хоть автор вопроса и написал : "..табель месяца учета рабочего времени..", я не думаю что для каждлго месяца у него будет другая БД. Следовательно идентификация записи по ФИО не приемлема, допустим только уникальный идентификатор.

Успехов Вам.
Евгений.

P.S. свои сообщения я подписываю в надежде, что обращаться ко мне будут по имени.
Teslenko_EA вне форума Ответить с цитированием
Старый 27.01.2011, 12:45   #19
mortal2010
Пользователь
 
Регистрация: 20.01.2011
Сообщений: 18
По умолчанию

Вот привел к формату MS Access 2002-2003 .mdb, но еще ничего не исправлял
Вложения
Тип файла: rar табель.rar (51.0 Кб, 14 просмотров)
mortal2010 вне форума Ответить с цитированием
Старый 27.01.2011, 13:15   #20
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

мдб-шку открыла

вечером посмотрю
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обновить столбец одной таблицы из другой таблицы kairat_tuyakbaev Microsoft Office Access 2 24.09.2010 12:46
Как обновить столбец одной таблицы из другой таблицы kairat_tuyakbaev SQL, базы данных 0 23.09.2010 23:42
Столбец таблицы с 2 типами данных FroL25 Общие вопросы C/C++ 1 08.07.2010 16:02
авт. перенос данных из нескольких столбцов одной таблицы в один столбец другой таблицы A_ALL Microsoft Office Access 7 24.08.2009 21:13
транспонирование строки таблицы в столбец kate158 БД в Delphi 15 18.05.2009 12:51