Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Отчет и проверка на уже имеющиеся записи... / 22 сообщений из 22, страница 1 из 1
08.01.2005, 12:47:45
    #32856350
burdik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет и проверка на уже имеющиеся записи...
Люди! Срочно нужна Ваша помощчь!!!!
Надо получить зачет по базам данных!!! Дали задание в MS Access сделать несколько БД и связи между ними, сделать пару запросов на добавление в каждую БД а также по параметрам одной БД вывести некот-е параметры другой.... Это всё я сделал, но меня заложили тем что В отчете необходимо чтобы была нумерация записей (т.е. я вывожу 5 записей с порядковыми номерами 3,4,7,23,76 а мне в отчете выводилось 1,2,3,4,5).
И ещё: Как сделать так чтобы была проверка на уже имеющуюся запись в БД(т.е. если в БД есть запись "Программирование" я не смог её добавить) и как сделать чтобы на экран выводилось сообщение: Такая запись уже есть в БД)???

Заранее благодарен народу!!!
ПАМАГИТЕ СРОЧНО!!!! :)
...
Рейтинг: 0 / 0
08.01.2005, 13:10:50
    #32856361
DataDigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет и проверка на уже имеющиеся записи...
Насчет нуменации 1,2,3 - это просто.
Поставь в поле отчета свойство RunningSum=true, ControlSource=1.
Ну а проверка? Перед добавлением пишешь процедуру, которая ищет запись в таблице, и если находит, говорит человеческим голосом: - Такая запись уже есть в БД
...
Рейтинг: 0 / 0
08.01.2005, 13:28:15
    #32856368
burdik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет и проверка на уже имеющиеся записи...
2 DataDigger:

дык объясни незнайке где находится это свойство RunningSum=true, ControlSource=1. Где его искать???
И ещё процедура пишется на SQL?

пасиб... :)
...
Рейтинг: 0 / 0
08.01.2005, 13:31:08
    #32856370
burdik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет и проверка на уже имеющиеся записи...
2 DataDigger:
и ещё, я так понял это в окне свойств отчета надо искать??? У меня версия русская, не пойму какие это поля... Если можешь, напиши поля русскими... :)
...
Рейтинг: 0 / 0
08.01.2005, 13:46:23
    #32856374
DataDigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет и проверка на уже имеющиеся записи...
burdik , если уж ты такой лентяй, что тебе лень скопировать текст и вставить в поиск Help:
1.Свойство «Сумма с накоплением» (RunningSum)
Свойство Сумма с накоплением (RunningSum) используют для расчета в отчете сумм с накоплением по записям или по группам. Доступно для чтения и записи.
2. Свойство «Данные» (ControlSource)
Свойство Данные (ControlSource) позволяет указать данные, выводящиеся в элементе управления. Можно отображать и редактировать данные, присоединенные к полю таблицы, запроса или инструкции SQL. Допускается также вывод результата выражения. String, чтение/запись.

Если уж ты совсем на бронепоезде, можно и так сказать:

- burdik, для того, чтобы задать вышеописанные свойства, выдели, будь любезен, нужное поле в конструкторе отчетов Access, нажми правую кнопочку мышечки, выбери "Свойства" (левой конпочкой) появится контекстное меню. В нем перейди, будь так любезен, на вкладку "данные".
В поле напротив строчки "Данные" напиши "=1", а в строчечке "Сумма с накоплением" выбери из списка "Для всего"
...
Рейтинг: 0 / 0
08.01.2005, 13:48:40
    #32856375
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет и проверка на уже имеющиеся записи...
см картинку
...
Рейтинг: 0 / 0
08.01.2005, 13:58:48
    #32856383
DataDigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет и проверка на уже имеющиеся записи...
burdik2 DataDigger:
И ещё процедура пишется на SQL?
пасиб... :)
Процедура пишется на бейсике. сам этот ключевой метод, что будет определять, есть такое значение в поле или нет, можно сделать и SQL-запросом, можно методами FindFirst DAO или ADO. Чтобы узнать, как они работают, надо скопировать слово "FindFirst" в буфер обмена Windows и вставить в окно поиска справочной системы Access. После чего не забыть нажать кнопку "найти".
...
Рейтинг: 0 / 0
08.01.2005, 14:06:31
    #32856386
burdik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет и проверка на уже имеющиеся записи...
2 DataDigger:
Ну насчёт последнего: скопировать, вставить и найти... эт ты загнул... я не такой уж чайник. :)
Процедура большая будет??? Смогёшь написать по шурику??

и ещё: Какое поле мне надо выбрать чтоб было окно с параметрами пронумерации... Или отдельное поле надо создать для пронумерации???
...
Рейтинг: 0 / 0
08.01.2005, 14:11:41
    #32856394
burdik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет и проверка на уже имеющиеся записи...
всё, с пронумерацией разобрался....
вот теперь проверка на имеющуюся запись осталась.....
...
Рейтинг: 0 / 0
08.01.2005, 15:02:07
    #32856418
DataDigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет и проверка на уже имеющиеся записи...
burdik , я тебе говорю, что я сам почти не пишу уже.
Навалял вот чисто для примера

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
Option Compare Database
Const tblname = "test"
Const fldName = "findWhat"
Function test(value As String) As Boolean
 Dim strSql As String
 Dim rst As DAO.Recordset
  strSql = "select " & tblname & ".* from " & tblname & " where " & _
  fldName & " = '" & value & "'"
  'Debug.Print strSql
  Set rst = CurrentDb.OpenRecordset(strSql, dbOpenDynaset)
  If rst.EOF = True Then
   test = False
   Else
    test = True
  End If
  rst.Close
  Set rst = Nothing
  'Debug.Print test
  
End Function
Function test1(value As String) As Boolean
Dim rst As DAO.Recordset
Dim strCriteria
Set rst = CurrentDb.OpenRecordset(tblname, dbOpenDynaset)
strCriteria = fldName & "='" & value & "'"
  rst.FindFirst (strCriteria)
  If rst.NoMatch = False Then
     test1 = True
        Else
     test1 = False
  End If
  
End Function
Sub Main()
Debug.Print test("Прог")
Debug.Print test1("Прог")

If test("Прог") Then
 Debug.Print "Введи чего-нито получше"
 Else
 Debug.Print "А вот это я схаваю"
End If

Debug.Print test1("ghjkgh")
Debug.Print test1("ghjkgh")

If test("ghjkgh") Then
 Debug.Print "Введи чего-нито получше"
 Else
 Debug.Print "А вот это я схаваю"
End If

End Sub
Сообщения дебуггера
Код: plaintext
1.
2.
3.
4.
5.
6.
call main()
True
True
Введи чего-нито получше
False
False
А вот это я схаваю
...
Рейтинг: 0 / 0
08.01.2005, 15:20:28
    #32856421
burdik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет и проверка на уже имеющиеся записи...
2 DataDigger:
и куда это вставлять?


Код: plaintext
Редактировано Темный 15:29
...
Рейтинг: 0 / 0
08.01.2005, 15:34:17
    #32856428
Alexander G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет и проверка на уже имеющиеся записи...
burdik2 DataDigger:
и куда это вставлять?
Именно
...
Рейтинг: 0 / 0
08.01.2005, 16:53:51
    #32856459
Программист-Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет и проверка на уже имеющиеся записи...
Код - обалдеть! Видимо Dlookup, DCount и другие агрегаторные функции отменили нафиг... Или вам исключительно за объем кода платят.
...
Рейтинг: 0 / 0
08.01.2005, 17:01:08
    #32856461
DataDigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет и проверка на уже имеющиеся записи...
Программист-Любитель,
Я предупреждал, что постоянным написанием кода не занимаюсь.
Приведи свой вариант, мы тогда сможем оценить его прелесть и красоту, по сравнению с этим.
А мои источники средств к существованию тебя вообще не должны интересовать. По крайней мере в этом топике.
...
Рейтинг: 0 / 0
08.01.2005, 17:29:08
    #32856475
Программист-Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет и проверка на уже имеющиеся записи...
Что ж ты так осерчал, родимый ?

Ну ладно, я тоже: Гав! :)
...
Рейтинг: 0 / 0
08.01.2005, 17:31:50
    #32856476
DataDigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет и проверка на уже имеющиеся записи...
Программист-Любитель, р-р-р
...
Рейтинг: 0 / 0
08.01.2005, 17:36:04
    #32856478
Программист-Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет и проверка на уже имеющиеся записи...
А с дэкаунтом код в одну строчку помещается... ;)~ (Высовывает язык, корчит рожу).
...
Рейтинг: 0 / 0
08.01.2005, 17:43:52
    #32856481
DataDigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет и проверка на уже имеющиеся записи...
Программист-Любитель ,
Я чего-то про него забыл, честно говоря. Но по сути он - тот же запрос. И работает почти так же.
Ну 1 строчка или 51 - не такая уж и большая разница.
...
Рейтинг: 0 / 0
08.01.2005, 17:55:35
    #32856488
burdik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет и проверка на уже имеющиеся записи...
Ребята! Прекращайте баловаться! Тут человеку сдавать надо задание, а Вы спорите кто из Вас умнее... Не в тему :(

Лучше объясните человеческим языком, возможно ли без написания процедур, а набором стандартных компонент Microsoft Access сделать проверку на имеющиеся записи?
Потому что нас этому не учили... Я думаю что препод имела ввиду поиск с применением стандартных процедур..

Код: plaintext
Не надо злоупотреблять знаками препинания. Спасибо. 18:55, Темный
...
Рейтинг: 0 / 0
08.01.2005, 18:17:43
    #32856493
DataDigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет и проверка на уже имеющиеся записи...
burdik ,
Любитель свой код писать не хочет, но он имел в виду типа такого
Function test2(value As String) As Boolean
If DCount(fldName, tblname, fldName & "=" & "'" & value & "'") >= 1 Then
test2 = True
'Нельзя добавлять - уже такое есть
Else
test2=false

End If
Эта фукция вернет true если в таблице с именем tblNAme в поле fldFindWhat найдет значение, переданное ей парамером value.
Тебе надо в обработчике события, перед добавление вызвать эту функцию, если он вернет True - то не добавлять, если false - добавлять.
...
Рейтинг: 0 / 0
08.01.2005, 18:51:34
    #32856504
Программист-Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет и проверка на уже имеющиеся записи...
Ну вот, а я надеялся, что топик немного расшевелили...
...
Рейтинг: 0 / 0
08.01.2005, 18:59:42
    #32856506
Программист-Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отчет и проверка на уже имеющиеся записи...
автор
Надо получить зачет по базам данных!!! Дали задание в MS Access сделать несколько БД и связи между ними, сделать пару запросов на добавление в каждую БД а также по параметрам одной БД вывести некот-е параметры другой....


Вы путаете понятие базы данных, как совокупности таблиц и отношений между ними и отдельно взятой таблицы.

автор
Это всё я сделал


Чего же еще тогда ?

автор
И ещё: Как сделать так чтобы была проверка на уже имеющуюся запись в БД(т.е. если в БД есть запись "Программирование" я не смог её добавить) и как сделать чтобы на экран выводилось сообщение: Такая запись уже есть в БД)???


Простейший способ - штатное свойство поля таблицы (а не БД в вашей терминологии) по недопущению одинаковых значений.

Если нужно выводить красивое сообщение, то можно воспользоваться уже описанной выше проверкой DCount в событиях формы BeforeUpdate, устанавливая Cancel в True.

Код: plaintext
Тег цитирования надо закрывать :) 19:07, Темный
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Отчет и проверка на уже имеющиеся записи... / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]