Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 06.06.2018
Сообщений: 10
1

В форме выводятся не все записи

06.06.2018, 10:37. Показов 4319. Ответов 23
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть база данных, которая была создана до меня (в ней уже работают люди). На её основе я создавал свою базу данных. И сама БД разделена на два файла: условная серверная часть (в ней хранятся только таблицы) и условная клиентская часть (в ней хранятся запросы, формы и макросы). И работала данная БД нормально.

Однако начиная со позавчерашнего дня новые записи перестали появляться в форме. Думал проблема с выводом(может запрос какой стоит), но нет. Потом проверил не переполняется ли какая-нибудь условная переменная по выводу(типа свыше N-ого количества строк сам Access не может вывести строки), но опять же - это оказалось не так. Заново создал новый файл серверной части и перенёс структуру и данные туда, проблему это не решило (скорее создало ещё больше, о которых ниже).

При вводе новой записи в таблице запись сохраняется, но если закрыть форму и снова открыть, то записи выведено на экран в форме не будет.

Так же на форме реализовано фильтр через кнопку с запросом, и если в поле фильтра по дате ввести 05.06(вчерашнее число), то записи за вчера будут выведены на форму. При показе всех записей (через макрос "ПоказатьВсеЗаписи") - вывода не будет. Однако после изменения таблиц (когда я полностью пересобрал серверную часть и заменил в клиентской части старые таблицы на новые) новые записи отображаются в таблице, но в форму их не вывести даже через фильтры.

Проверил всё, что мог - явных ошибок обнаружить не смог. Может кто подсказать решение? Не хотелось бы с самого начала делать всю клиентскую часть. При необходимости могу предоставить стриншоты.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.06.2018, 10:37
Ответы с готовыми решениями:

На отчет выводятся не все записи
Проблема: я создал форму поиска данных. В той же форме сделал кнопку создания отчета по...

Почему выводятся не все записи с подзапроса?
Здраствуйте. Не могу понять в чем проблемма. Помогите кто сталкивался с такой же проблеммой. ...

Не отображаются все записи в форме
В форме "Анализы(заполнение)" хочу организовать поиск по записи, для этого мне нужно, чтобы в...

Кнопкой изменить все записи на форме
Форма получается в результате запроса. добавил кнопку с программой Private Sub Кнопка20_Click()...

23
Модератор
Эксперт MS Access
11960 / 4828 / 779
Регистрация: 07.08.2010
Сообщений: 14,140
Записей в блоге: 4
06.06.2018, 10:41 2
Цитата Сообщение от PitBul477 Посмотреть сообщение
Может кто подсказать решение? Не хотелось бы с самого начала делать всю клиентскую часть. При необходимости могу предоставить стриншоты.
скриншоты не помогут, надо смотреть базы, особенно, где формы
где данные --можно создать копию, удалив записи (если инфа конфиденциальна)
0
0 / 0 / 0
Регистрация: 06.06.2018
Сообщений: 10
06.06.2018, 10:48  [ТС] 3
Ну вот в том-то и дело, что скорее всего информация конфиденциальна. И единственное, что я могу сделать - это показывать скриншоты(и то не факт, что за это погладят по головке) с теми записями, которые сделаны конкретно мною(замазав всё лишнее), ну и запросы, формы, макросы
0
10472 / 5458 / 1375
Регистрация: 05.10.2016
Сообщений: 15,475
06.06.2018, 10:48 4
Цитата Сообщение от PitBul477 Посмотреть сообщение
При необходимости могу предоставить стриншоты.
Мыслю так:
- Обожмите базу (серверную часть)
- Переподключите её таблички к клиентской по новой.

Вот вам в помощь:
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Public Sub esDelAllConnectedTables()
'Удаляет из текущей базы все подлинкованные таблицы
Dim tbl As TableDef
On Error GoTo DelAllConnectedTablesErr
    For Each tbl In CurrentDb.TableDefs
        If tbl.Connect <> "" Then
            CurrentDb.TableDefs.Delete tbl.Name
        End If
    Next
    CurrentDb.TableDefs.Refresh
    DoEvents
DelAllConnectedTablesBye:
    Exit Sub
DelAllConnectedTablesErr:
    MsgBox "Произошла ошибка при удалении подключенных таблиц:" & vbCrLf & _
    Err.Description, vbCritical
    Resume DelAllConnectedTablesBye
End Sub
Наоборот - по пути:

Visual Basic
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
Public Function esConnectAllTables(ByRef strFilePath As String, Optional ByRef strPrefix As String = "") As Long
'es 11.03.2013
'Подключение всех таблиц указанного файла MDB (кроме скрытых и системных)
'Аргументы:
'   strFilePath = Путь к файлу
'   strPrefix   = Префикс местного названия таблицы
'Функция при возникновении ошибки возвращает ее код
'--------------------------------------------------------------------
Dim strLink As String
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Dim x As Long
 
On Error GoTo ConnectAllTablesErr
    Set db = DBEngine.OpenDatabase(strFilePath)
    strLink = ";DATABASE=" & strFilePath
    For Each tdf In db.TableDefs      'Перебор всех таблиц в указанной базе
        If tdf.Attributes = 0 Then    'Если не скрытая и не системная = подключаем ... 
            x = esConnectToTable(strLink, tdf.name, strPrefix & tdf.name)
            If x <> 0 Then 'Если ошибка = На ВЫХОД!
                esConnectAllTables = x
                Exit For
            End If
         End If
    Next tdf
    CurrentDb.TableDefs.Refresh
    esConnectAllTables = x
    
ConnectAllTablesBye:
    On Error Resume Next
    db.Close
    Set db = Nothing
    Err.Clear
    DoEvents
    Exit Function
 
ConnectAllTablesErr:
    esConnectAllTables = Err.Number
    'Debug.Print Err.Description
    Resume ConnectAllTablesBye
End Function
 
 
Public Function esConnectToTable(strBaseLink As String, _
                sourseName As String, _
                Optional newName As String = "", _
                Optional makeHidden As Boolean = False) As Long
'es 25.11.04
'Подключение указанной таблицы по аргументам:
'   strBaseLink     = строка подключения вида: ";DATABASE=C:\DB.mdb"
'   sourseName      = Исходное название таблицы в базе
'   makeHidden      = Сделать скрытой (по умолч. = нет)
'   newName         = Новое имя таблицы (по умолч. = sourseName)
'При ошибке возвращает ее код
'--------------------------------------------------------------------
Dim db As DAO.Database
Dim tdf As DAO.TableDef
    
'Имя создаваемой таблицы
    If newName = "" Then newName = sourseName
'Удаление старой (если есть)
    On Error Resume Next
    Set db = CurrentDb
    db.TableDefs.Delete newName
    Err.Clear
'Создание и подключение
On Error GoTo ConnectToTableErr
    Set tdf = db.CreateTableDef(newName)
    tdf.Connect = strBaseLink
    tdf.SourceTableName = sourseName
    db.TableDefs.Append tdf
 
'если указано что должна быть скрытая
    If makeHidden = True Then
        Application.SetHiddenAttribute acTable, tdf.Name, True
    End If
 
ConnectToTableBye:
    On Error Resume Next
    Set tdf = Nothing
    Set db = Nothing
    Err.Clear
    Exit Function
ConnectToTableErr:
    esConnectToTable = Err.Number
    'Debug.Print Err.Description
    Resume ConnectToTableBye
End Function
0
Модератор
Эксперт MS Access
11960 / 4828 / 779
Регистрация: 07.08.2010
Сообщений: 14,140
Записей в блоге: 4
06.06.2018, 10:57 5
например
--вы ввели запись через форму
--ее не видно после выхода и повторного входа
--посмотрите напрямую в таблице --есть ли он там

Добавлено через 4 минуты
Цитата Сообщение от PitBul477 Посмотреть сообщение
новые записи отображаются в таблице, но в форму их не вывести даже через фильтры.
хотя похоже записи есть в базе --значит есть некий фильтр, который сохранился в форме и действует при загрузке
....или в запросе, на который настроена форма
....или удалили запись из справочника, а в запросе INNER JOIN
0
0 / 0 / 0
Регистрация: 06.06.2018
Сообщений: 10
06.06.2018, 11:11  [ТС] 6
Ну я загрузил БД без первоначальных записей(сейчас ничего не выводится из-за того, что работающие записи удалены)

https://yadi.sk/d/iO73BGhy3XDm3W - клиентская часть
https://yadi.sk/d/2-L8glJ73XDm32 - серверная часть

Может по этому набору данных можно будет что-то понять
0
10472 / 5458 / 1375
Регистрация: 05.10.2016
Сообщений: 15,475
06.06.2018, 11:21 7
Цитата Сообщение от PitBul477 Посмотреть сообщение
Может по этому набору данных можно будет что-то понять
Можно ...
Серверная в порядке вроде, клиентская .... смотрю ...
0
0 / 0 / 0
Регистрация: 06.06.2018
Сообщений: 10
06.06.2018, 11:23  [ТС] 8
Да, серверная точно должна быть в порядке, ибо я её заного создавал. И я так же решил, что остаётся только клиентская часть, но просмотрев - не смог найти ничего, что могло дать подобный эффект
0
10472 / 5458 / 1375
Регистрация: 05.10.2016
Сообщений: 15,475
06.06.2018, 11:27 9
PitBul477, выполнил пост #4 - работает.
0
0 / 0 / 0
Регистрация: 06.06.2018
Сообщений: 10
06.06.2018, 11:31  [ТС] 10
Не то,чтобы я дружил с VBA(пытался некоторые команды не через макросы сделать - увы, туп не работал код), но сейчас попробую...вот только не знаю - надо создавать модуль или класс?
0
8860 / 5908 / 585
Регистрация: 27.03.2013
Сообщений: 19,574
06.06.2018, 11:35 11
Наверное если в качестве источника записей или строк - Запрос, состоящий из нескольких таблиц, то нужно подсуетится и вместо Юнионов - Лифты поставить, ибо частенько не все поля сразу заполняются.
0
10472 / 5458 / 1375
Регистрация: 05.10.2016
Сообщений: 15,475
06.06.2018, 11:41 12
Цитата Сообщение от PitBul477 Посмотреть сообщение
надо создавать модуль или класс?
До классов вы потом доберётесь , если захотите.
а пока модули ...

Добавлено через 6 минут
PitBul477, а вот вам примеры:
01. Подключение всех таблиц указанного файла MDB (DAO)
02. Автоматическое подключение внешних таблиц, полученных при разбиении исходной базы данных на таблицы и объекты
0
0 / 0 / 0
Регистрация: 06.06.2018
Сообщений: 10
06.06.2018, 11:41  [ТС] 13
Эм...
Миниатюры
В форме выводятся не все записи  
0
Модератор
Эксперт MS Access
11960 / 4828 / 779
Регистрация: 07.08.2010
Сообщений: 14,140
Записей в блоге: 4
06.06.2018, 11:48 14
у вас похоже запрещен код VBA(макросы)
откройте Политика безопасности --проверьте
0
0 / 0 / 0
Регистрация: 06.06.2018
Сообщений: 10
06.06.2018, 11:49  [ТС] 15
У меня файл формата .accdb, а не .mdb. Или для данной команды без разницы? В любом случае - что-то понять без базы знаний по VBA сложно...а тут сразу кидают в такую кашу. Или необходимо скачать примеры, которые прикреплены на присланных тобой страницах?
0
10472 / 5458 / 1375
Регистрация: 05.10.2016
Сообщений: 15,475
06.06.2018, 11:50 16
Цитата Сообщение от PitBul477 Посмотреть сообщение
Эм...
Ну так правильно.
Зашита сработала.
Разрешите макросы ... в настройках безопасности - всё и заработает.

У меня так:
Миниатюры
В форме выводятся не все записи   В форме выводятся не все записи  
0
0 / 0 / 0
Регистрация: 06.06.2018
Сообщений: 10
06.06.2018, 11:54  [ТС] 17
Точно, забыл включить содержимое х)
Ладно, первый код удаляет связанные таблицы. Однако вторую часть кода я запустить не могу...или попросту не знаю как это делается
0
10472 / 5458 / 1375
Регистрация: 05.10.2016
Сообщений: 15,475
06.06.2018, 12:01 18
Цитата Сообщение от PitBul477 Посмотреть сообщение
Однако вторую часть кода я запустить не могу...или попросту не знаю как это делается
Так на то и форум ...
Аналогичное решение в первом примере - просто посмотрите.
0
0 / 0 / 0
Регистрация: 06.06.2018
Сообщений: 10
06.06.2018, 12:05  [ТС] 19
Ну то есть я правильно понимаю, что табличка из примера должна появляться при запуске БД с формой? Я просто вставил этот код в новый модуль и в итоге ничего - при перезапуске ничего не происходит, ни запустить из среды VBA не могу
0
10472 / 5458 / 1375
Регистрация: 05.10.2016
Сообщений: 15,475
06.06.2018, 12:07 20
Цитата Сообщение от PitBul477 Посмотреть сообщение
У меня файл формата .accdb, а не .mdb.
Разницы нет.

Цитата Сообщение от PitBul477 Посмотреть сообщение
В любом случае - что-то понять без базы знаний по VBA сложно...а тут сразу кидают в такую кашу.
Нужно учится - или платить тем кто умеет (без намёков!).

Цитата Сообщение от PitBul477 Посмотреть сообщение
скачать примеры, которые прикреплены на присланных тобой страницах?
Да!, и посмотреть, и это далеко не единственные примеры ...

Цитата Сообщение от PitBul477 Посмотреть сообщение
на присланных тобой страницах?
У нас (на форуме) принято на ВЫ.
Вот как- нить приедете к нам в гости - выпьем ... посидим ... тогда на "ТЫ" и прейдём (возможно) ...
0
06.06.2018, 12:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.06.2018, 12:07
Помогаю со студенческими работами здесь

Фильтр в форме не позволяет выбрать все записи в запросе
Друзья, помогите! Зашел в тупик. Решение должно быть где-то на поверхности, но я уже заел в...

Функция DCount считает все записи в подчиненной форме
Добрый день! У меня есть база Access 2010 для планирования и учета развозов заказов клиенту и...

Как правильно указать все в векторной форме записи
https://рrnt.sc/nj1tnh Что тут за ошибка,и как правильно указать все в векторной форме?

Как перебрать все записи одного поля в отфильтрованной форме?
Добрый день! В Excel использовался такой нехитрый код: Private Sub Кнопка289_Click() Dim...

LEFT JOIN в подчиненной форме. Все записи из левой таблицы
Доброго дня! Друзья, есть три таблицы: Получатели, План, Выдачи. Получатели неизменны, есть...

Как в форме поменять все записи типа ААА на ВВВ одним кликом?
Есть таблица. Данные вводятся в нее из формы. Надо весь 1 курс перевести на 2 курс нажатием одной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru