Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 30.05.2015
Сообщений: 130

Работа с БД. При запуске получаю ошибку: 13 Type Mismatch.

22.03.2020, 17:56. Показов 1291. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Имеется код для работы с БД:

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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
Dim РабочаяОбласть As Workspace
Dim БазаДанных As Database
Dim Запись As ADODB.Recordset
Dim ЗаписьДубль As ADODB.Recordset
Dim Ингредиент As String
Dim Критерий As String
Dim Закладка As Variant
 
Private Sub CommandButton1_Click()
Ингредиент = Trim(TextBoxl.Text)
Критерий = "[Ингредиент]='" & Ингредиент & "'"
Запись.FindFirst Критерий
If Запись.NoMatch = False Then
ПоказатьЗапись
Else
MsgBox "Запись не найдена", vbInformation, "Рецепт"
Запись.Bookmark = Закладка
ПоказатьЗапись
End If
End Sub
 
Private Sub CommandButton2_Click()
Запись.MoveLast
ПоказатьЗапись
End Sub
 
Private Sub CommandButton3_Click()
With Запись
.Delete
.MoveNext
End With
ПоказатьЗапись
End Sub
 
Private Sub CommandButton4_Click()
With Запись
.AddNew
.Fields("Ингредиент").Value = TextBoxl.Text
.Fields("Вес").Value = TextBox2.Text
.Update
End With
Exit Sub
End Sub
 
Private Sub CommandButton5_Click()
With Запись
.Edit
.Fields("Ингредиент").Value = TextBoxl.Text
.Fields("Вес").Value = TextBox2.Text
.Update
End With
End Sub
 
Private Sub CommandButton6_Click()
Запись.Close
БазаДанных.Close
РабочаяОбласть.Close
UserForml.Hide
 
End Sub
 
Private Sub CommandButton7_Click()
Запись .MoveFirst
Показать Запись
End Sub
 
Private Sub CommandButton8_Click()
Запись .MovePrevious
If Запись.BOF = True Then
Запись.MoveFirst
MsgBox "Первая запись", vblnformation, "Рецепт"
End If
Показать3апись
 
End Sub
 
Private Sub CommandButton9_Click()
Запись.MoveNext
If Запись.EOF = True Then
Запись.MoveLast
MsgBox "Последняя запись", vblnformation, "Рецепт"
End If
Показать Запись
 
End Sub
 
Private Sub Label1_Click()
 
End Sub
 
Private Sub Label3_Click()
 
End Sub
 
Private Sub TextBox1_Change()
 
End Sub
 
Private Sub UserForm_Click()
 
End Sub
 
Private Sub UserForm_Initialize()
 
Set РабочаяОбласть = CreateWorkspace(Name:="", UserName:="admin", Password:="", UseType:=dbUseJet)
 
Set БазаДанных = РабочаяОбласть.OpenDatabase(Name:="D:\Учеба\1\lb3.accdb", Options:=True)
 
Set Запись = БазаДанных.OpenRecordset("list", dbOpenDynaset)
 
Запись.MoveLast
Label3.Caption = "Всего записей" & CStr(Запись.RecordCount)
 
Запись.MoveFirst
ПоказатьЗапись
With UserForml
.Caption = "Рецепт"
.OptionButton2.Value = True
End With
End Sub
Sub ПоказатьЗапись()
 
TextBoxl.Text = Запись.Fields("Ингредиент").Value
TextBox2.Text = Запись.Fields("Вес").Value
End Sub
Но при запуске получаю ошибку: 13 Type Mismatch

Добавлено через 8 минут
Ошибку получаю на этой строке Запись.MoveLast
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.03.2020, 17:56
Ответы с готовыми решениями:

Ошибка при запуске EXE: <Run-time error '13': Type mismatch>
Я протестировал рогу в режиме отладки - все о'кей!...Компилирую, запускаю экзешник и при загрузке одной из форм вылетает сообщение об...

Ошибка при запуске программы "run time error 13 type mismatch"
сама задача: Определить количество элементов массива, принадлежащих промежутку отa до b (значения a и b вводятся с клавиатуры; b &gt; a)....

Исправить ошибку "Type mismatch" при сравнении числа со значением в ячейке листа Excel
добрый день ребят помогите разобраться в ошибке If (Worksheets(&quot;Размотка&quot;).Cells(i + 1, 23) &gt; 0) Then

14
Эксперт NIX
3305 / 933 / 201
Регистрация: 14.01.2013
Сообщений: 4,774
22.03.2020, 18:01
Цитата Сообщение от wersahi2 Посмотреть сообщение
Но при запуске получаю ошибку: 13 Type Mismatch
Предлагаете развести покрепче кофе? В каком месте, этой простынки, Вы получаете ошибку 13? В принципе, ошибка очень проста. Если один тип данных пытаться запихать в другой тип, то тут и вылезет эта ошибка. Т.е., например, в переменную, объявленную, как Integer, пытаться записать String.

Добавлено через 2 минуты
Попробуйте брякнуться на проблемной строке и посмотреть, что содержит в себе "Запись".
0
1 / 1 / 0
Регистрация: 30.05.2015
Сообщений: 130
22.03.2020, 18:42  [ТС]
Я не могу посмотреть, что находится в Запись, потому что если я ставлю на ней точку останова, то сразу вылетает ошибка и я не могу посмотреть, что там содержится. В БазеДанных и РабочейОбласти данные есть

Добавлено через 1 минуту
Set Запись = БазаДанных.OpenRecordset("list", dbOpenDynaset)

Вот на этой строчке вылетает ошибка
0
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
22.03.2020, 18:43
wersahi2, такой вопрос, а ошибка в Запись.MoveLast из какого макроса, их же несколько? И второе, в базе есть реальные записи?
0
1 / 1 / 0
Регистрация: 30.05.2015
Сообщений: 130
22.03.2020, 18:48  [ТС]
В базе всего лишь одна таблица с несколькими записями. Ошибка на строке Set Запись = БазаДанных.OpenRecordset("list", dbOpenDynaset) возникает
0
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
22.03.2020, 18:57
пока писал, ответили
0
Эксперт MS Access
26827 / 14507 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
22.03.2020, 19:11
Цитата Сообщение от wersahi2 Посмотреть сообщение
Ошибка на строке Set Запись = БазаДанных.OpenRecordset("list", dbOpenDynaset) возникает
И понятно почему. Ранее переменная Запись объявлена как Dim Запись As ADODB.Recordset, а приравниваете ее к DAO-рекордсету. Это разные по своей природе объекты. А должно быть однообразие, либо адо, либо дао.

Кроме того ошибки в строках 63 и 68. Написано с лишним пробелом между переменной рекордсета и точкой его коллекции "Запись .MoveFirst". Надо без точки
Visual Basic
1
Запись.MoveFirst
0
1 / 1 / 0
Регистрация: 30.05.2015
Сообщений: 130
22.03.2020, 19:22  [ТС]
Изменила:

Visual Basic
1
2
3
4
5
6
Dim РабочаяОбласть As Workspace
Dim БазаДанных As Database
Dim Запись As Recordset
Dim Ингредиент As String
Dim Критерий As String
Dim Закладка As Variant
Но ошибка все равно сохранилась
0
Эксперт MS Access
26827 / 14507 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
22.03.2020, 20:12
Цитата Сообщение от wersahi2 Посмотреть сообщение
Dim Запись As Recordset
Надо явно задать тип. Если библиотека ADODB в списке референсов выше даошной, то и тип переменной Запись по умолчанию будет адошным. А надо DAO
Visual Basic
1
Dim Запись As DAO.Recordset
0
1325 / 543 / 112
Регистрация: 29.03.2016
Сообщений: 1,314
22.03.2020, 23:30
И в 73 строке ошибка.
Выделена красным в стартовом посте.
0
1 / 1 / 0
Регистрация: 30.05.2015
Сообщений: 130
23.03.2020, 11:42  [ТС]
Теперь вот тут получаю ошибку: object required (error 424)

Visual Basic
1
2
3
4
5
Sub ПоказатьЗапись()
 
TextBoxl.Text = Запись.Fields("Ингредиент").Value
TextBox2.Text = Запись.Fields("Вес").Value
End Sub
0
Эксперт NIX
3305 / 933 / 201
Регистрация: 14.01.2013
Сообщений: 4,774
23.03.2020, 20:12
Цитата Сообщение от wersahi2 Посмотреть сообщение
Теперь вот тут получаю ошибку: object required (error 424)
И здесь бряк не помогает? На третьей строке если поставить, в "Запись" должно пустить посмотреть. Какие там есть поля.
0
1 / 1 / 0
Регистрация: 30.05.2015
Сообщений: 130
23.03.2020, 21:13  [ТС]
Поля все есть. Но ему что-то не нравится(
Миниатюры
Работа с БД. При запуске получаю ошибку: 13 Type Mismatch.  
0
Эксперт NIX
3305 / 933 / 201
Регистрация: 14.01.2013
Сообщений: 4,774
24.03.2020, 18:04
ForeignName - ?
0
1 / 1 / 0
Регистрация: 30.05.2015
Сообщений: 130
24.03.2020, 18:36  [ТС]
Все, сделала. Спасибо всем за помощь)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.03.2020, 18:36
Помогаю со студенческими работами здесь

Выдает ошибку (type mismatch)
В Паскале АБС работает, а в Турбо паскале выдает ошибку (Type Mismatch), там где стоит Procv(A,..). Что не так? Вот задание: ...

Выдаёт ошибку type mismatch
Sub Прямоугольник2_Щелчок() Randomize n = Cells(2, 16) Price = Cells(3, 16) 'цена за ед. товара Price4 = Cells(4, 16) 'цена за...

Оператор сравнения выдает ошибку Type mismatch
Есть три ячейки в столбце. Содержат символы: -, 0, - . Имеют тип string Условие If ((Cells(NumR, NumC).Value = 0) And Not...

Найти ошибку в программе (Error 26: Type mismatch)
Error 26: Type mismatch var a:array of integer; m,n,X,i,j:integer; t,r:real; i:=1; while i&lt;=m/2 do begin j:=1; while...

Type mismatch при setlength
В строках 31-32 почему-то возникает type mismatch. Объясните пожалуйста почему. uses crt; type Note = record name: string;...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru