Форум программистов, компьютерный форум, киберфорум
Наши страницы
MS Access
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Karina901
0 / 0 / 0
Регистрация: 26.01.2016
Сообщений: 97
1

При записи дат выдает ошибку

26.01.2016, 09:08. Просмотров 690. Ответов 28
Метки нет (Все метки)

Добрый день! Помогите разобраться.

Делаю базу в Access. VBA. Имеется форма ввода данных контрактов. (Прикрепляю фото) Поля которые закрашены они автоматом проставляются, то есть номер по порядку, текущая дата и статус.
А не закрашенные пользователь вводит. вопрос в том что когда нажимает подписать выдается ошибка (прикрепляю фото). я так понимаю что не может записать даты(( НО. в базе в итоге они появляются. только я если делаю следующую запись оно уже не работает((

Visual Basic
1
2
3
4
rs.Open "insert into s_kontr (datR,kontr,pred,datN,datK,summa,stat) values ('"  _
& Me.datR & "','" & Me.kontr & "','" & Me.pred & "','" _
& Me.datN & "','" & Me.datK & "','" & Me.Summa & "','" _
& Me.stat & "')", xCon, adOpenForwardOnly

И еще вопрос как сделать чтобы как только форма открывается на ней стояли уже данные о текущей дате и номере по порядку из базы? у меня появляется только после нажатия кнопки "подписать" (что собственно логично) но хотелось бы сразу их получить.

Надеюсь на помощь) спасибо)
0
Миниатюры
При записи дат выдает ошибку   При записи дат выдает ошибку  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2016, 09:08
Ответы с готовыми решениями:

Выдает ошибку 'Записи не могут быть прочитаны "'
У меня работал форум на IIS и база была написана на MS Access но в скоре...

При просмотре двоичных данных выдает ошибку
При нажатии на двоичные данные в таблице выскакивает ошибка вида: "Возникла...

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

При попытке сохранить данные Access выдает ошибку аргумента
При попытке сохранить данные выдает ошибку аргумена. Если я сожму базу то 3-4...

При открытии запросов и нажатии кнопки об отмене выдает ошибку 2001
Здорово, ребят, выручите по-братски, дела. БД по Органам Исполнительной...

28
texnik-san
шапоклякистка 8-го дня
3630 / 2191 / 389
Регистрация: 26.06.2015
Сообщений: 4,648
Записей в блоге: 1
26.01.2016, 13:37 21
Уррраа, разобралась! Спасибо огромное!

Visual Basic
1
2
3
4
5
6
7
Sub mmdata()
Dim s1 As String, rs As New ADODB.Recordset, xCon As ADODB.Connection
    Set xCon = CurrentProject.Connection
    s1 = "insert into photo_category (title) "
    s1 = s1 & " values ('test')"
    rs.Open s1, xCon, adOpenForwardOnly
End Sub
работает.

Я просто вообще не общалась с ADO до сих пор )))

Добавлено через 1 минуту
То есть, получается, в ADO можно открывать выполняемые запросы как рекордсеты?? Или это только insert into касается?
0
mobile
Эксперт MS Access
22918 / 12994 / 2688
Регистрация: 28.04.2012
Сообщений: 14,228
26.01.2016, 13:44 22
АДО побогаче ДАО. И самое главное АДО универсальна - можно пользоваться не только для Jet SQL, но и для любых реляционных БД, для которых есть драйвера. Более того, в АДО можно создавать свободный рекордсет, не основанный на таблице. Иногда это очень помогает.


Драйвера для БД можно найти на сайте http://www.connectionstrings.com
2
alvk
Эксперт MS Access
5605 / 3500 / 169
Регистрация: 12.08.2011
Сообщений: 8,919
26.01.2016, 15:22 23
Цитата Сообщение от mobile Посмотреть сообщение
Я обычно беру версию 2.6
я 2.8 предпочитаю.
0
Karina901
0 / 0 / 0
Регистрация: 26.01.2016
Сообщений: 97
27.01.2016, 05:35  [ТС] 24
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub 1_Click()
Dim xCon As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strNewRecord As String
Dim sqlDateStr As String
 
DoCmd.RunCommand acCmdSaveRecord
 
datR.Value = Format(Now(), "dd.mm.yyyy")
 
rs.Open "UPDATE s_kontr set s_kontr.stat='ÏîäïèñГ*Г*'", xCon, adOpenForwardOnly
'rs.Open "insert into s_kontr (datR,kontr,pred,datN,summa,stat) values ('" & Me.datR & "','" & Me.kontr & "','" & Me.pred & "',Format(Me.datN, "mm\/dd\/yyyy"),'" & Me.Summa & "','" & Me.stat & "')", xCon, adOpenForwardOnly
 
MsgBox "Запись добавлена"
 
DoCmd.OpenForm "ContrPodpisan"
End Sub
Вот как у меня все объявлено. Все библиотеки подключены.

Добавлено через 2 минуты
с s1 у меня так и не получилось. я новичок в access поэтому вот сижу мучаюсь разбираюсь. самое интересное что данные в базу стали добавляться с формы без скл запроса. просто по нажатию кнопки. видимо можно на форме указатькуда что добавлять. я просто думала только через запрос. Извиняюь за мой тупим если говорю элементарное) пвторяюсь, только учусь)))

Вот хотелось бы вопрос, у меня на форме если посмотреть две кнопки. одна "подписано" вторая "не подписано". и если нажимаю вторую то статус во ВСЕХ ЗАПИСЯХ меняется на "не подписано". как сделать чтобы только в той которую заношу? Хотя кнопки разные, почему так работает?

И еще если я меняю что то на форме и нажимаю занести в базу то выдает ошибку "Конфликт записи"? Но я же исправила эту запись, почему такая реакция? они ведь не похожи
0
alvk
Эксперт MS Access
5605 / 3500 / 169
Регистрация: 12.08.2011
Сообщений: 8,919
27.01.2016, 06:12 25
Я бы сделал не так. Во-первых дату не надо представлять в таком виде, достаточно воспользоваться не now(), а date(). Во-вторых вместо ранкомманд используют обычно me.dirty = false.
Также рекордсет для меня тоже странен, когда есть запрос, итого, если поле datr имеет тип дата:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub 1_Click()
Dim sql as string
me.dirty = false
sql = "UPDATE s_kontr set s_kontr.stat='ÏîäïèñГ*Г*'"
currentdb.execute sql
sql = "insert into s_kontr (datR,kontr,pred,datN,summa,stat) " _
& " values (date(),'" & Me.kontr & "','" & Me.pred & "',#" & Format(Me.datN, "mm\/dd\/yy") & "# , " _
& " '" & Me.Summa & "','" & Me.stat & "')"
currentdb.execute sql
 
DoCmd.OpenForm "ContrPodpisan"
End Sub
Добавлено через 4 минуты
Цитата Сообщение от Karina901 Посмотреть сообщение
две кнопки. одна "подписано" вторая "не подписано". и если нажимаю вторую то статус во ВСЕХ ЗАПИСЯХ меняется на "не подписано".
Вы серьёзно думаете, что этого описания достаточно?

Цитата Сообщение от Karina901 Посмотреть сообщение
И еще если я меняю что то на форме и нажимаю занести в базу то выдает ошибку "Конфликт записи"? Но я же исправила эту запись, почему такая реакция? они ведь не похожи
me.dirty = false в начале модуля "занести в базу" вам поможет.
0
Karina901
0 / 0 / 0
Регистрация: 26.01.2016
Сообщений: 97
27.01.2016, 11:05  [ТС] 26
Спасибо что отвечаете)
К сожалению не помог мне Me.ditrty=false таже самая ошибка выдается. Но я поняла почему. у меня стоит счетчик в таблице и когда я заношу данные в форму то присваевается номер по порядку. И наверное из-за этого он не дает править запись.
может тогда надо убрать счетчик и прописыват типа nom+1 ? после обновления, чтобы после нажатия кнопки "добавить в базу" он сразу ставил следующий номер для новой записи? или это можно как то со счетчиком сделать??

Добавлено через 30 минут
Он даже обновить не дает((
Visual Basic
1
rs.Open "UPDATE s_kontr set s_kontr.regNom='" & Me.regNom & "' where s_kontr.nom = '" & FormContact.nom & "'", xCon, adOpenForwardOnly
я пытаюсь в эту же таблицу внести данные с другой формы, по условию надо. а он не дает ее обновить9((( Или как это правильно записать надо?
Спасибо за помощь)))
0
shanemac51
Модератор
Эксперт MS Access
7806 / 3021 / 431
Регистрация: 07.08.2010
Сообщений: 8,223
Записей в блоге: 2
27.01.2016, 11:15 27
вам же исправили эту строку

Visual Basic
1
rs.Open "UPDATE s_kontr set s_kontr.regNom='" & Me.regNom & "' where s_kontr.nom = '" & FormContact.nom & "'", xCon, adOpenForwardOnly
почему вы ее опять по старому пишите

он не дает ее обновить
может у вас ошибка при установлении связей таблиц
-----------
выложите базу
0
Karina901
0 / 0 / 0
Регистрация: 26.01.2016
Сообщений: 97
27.01.2016, 12:03  [ТС] 28
я пробовала сделать как мне исправили. тоже самое выдает ошибку(( поэтому оставила так
Прикрепляю базу.
0
Вложения
Тип файла: rar учет.rar (58.9 Кб, 2 просмотров)
shanemac51
Модератор
Эксперт MS Access
7806 / 3021 / 431
Регистрация: 07.08.2010
Сообщений: 8,223
Записей в блоге: 2
27.01.2016, 13:26 29
УВЫ, ваша база мало что дает для понимания --у вас связанные таблицы, структура таблиц не видна(вернее ее нет, формы не открываются)

Добавлено через 9 минут
а форме form_contract еще и ощибки в коде

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
''form_contract
Private Sub Кнопка26_Click()
'On Error GoTo Err_Кнопка26_Click
Dim xCon As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strNewRecord As String
Dim sqlDateStr As String
Dim s1
'Кнопку сохранения формы
Me.Dirty = False
'DoCmd.RunCommand acCmdSaveRecord
constring = "Provider=SQLOLEDB.1;Password=psw;Persist Security Info=True;User ID=psw;Initial Catalog=Gurnal_kont;Data Source=Server1\omich"
xCon.Open (constring)
 
datR.Value = Format(Now(), "dd.mm.yyyy")
 
rs.Open "UPDATE s_kontr set s_kontr.stat='Подписан'", xCon, adOpenForwardOnly
s1 = "insert into s_kontr (datR,kontr,pred,datN,summa,stat) "
s1 = s1 & " values ('" & Me.datR & "','" & Me.kontr & "','"
s1 = s1 & Me.pred & "',Format(Me.datN, 'mm\/dd\/yyyy'),'" & Me.Summa & "','"
s1 = s1 & Me.stat & "')"
 
 
 
rs.Open , xCon, adOpenForwardOnly
MsgBox "Данные добавлены"
 
 
DoCmd.OpenForm "ContrPodpisan"
 
    
End Sub
rs.open --это открытие готовой таблицы
у вас же действие/изменения

поэтому вам и написали currentdb.execute
0
27.01.2016, 13:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2016, 13:26

Ребят, выдает ошибку при открытии формы . В чем может быть причина?
Открываю БД, и выдает ошибку при открытии формы "Список клиентов", пишет, что...

При использовании VBA на скрытие области навигации выдает ошибку в Access Runtime. Как исправить?
Привет, народ! В общем вопрос в следующем. В базе данных установлен VBA...

выдает сообщение Невозможно добавление или изменение записи. Для обеспечения целостности данных необходимо наличие связанной записи в таблице
вот сама база http://rghost.ru/50019378 хелппп!! как я понял что-то криво со...


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru