Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проверка существования записи / 25 сообщений из 33, страница 1 из 2
12.12.2007, 14:23
    #35004391
Се
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования записи
доброе время суток! 1.Народ подскажите или подкиньте идею ! задача такая , есть Бд
при записи новых данных нужно сделать проверку по двум textbox-ам
если запись существует то например msgbox "запись сществует .сделайте проверку данных" иначе выполнить update
один текст бокс это месяц , второй это год.
Пробовал MLookUP не получилось:( Не дает Public Function выполнить под кнокой Update_Click
на форме
и 2. Как сделать чтоб при постановке курсора в Текстбокс раскладка переключалась на русский сама?
Спасибо!
...
Рейтинг: 0 / 0
12.12.2007, 14:49
    #35004530
TIKO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования записи
запрос с условие и проверка рекордсеата на наличия записей
Код: plaintext
1.
2.
3.
If rs.RecordCount> 0  Then
MsgBox "Уже есть такой элемент" 
Exit sub
End If
по второму вопросу через API функции
поищи через поиск на фруме примеры будут
...
Рейтинг: 0 / 0
12.12.2007, 14:53
    #35004546
gjghjc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования записи
Код: plaintext
1.
2.
3.
SELECT COUNT (какое-нибудь поле) 
FROM table1
Where Field1 = Text1.Text and Field2 = Text2.text


Т.е. выбрать в рекордсет количество записей по условиям содержащимся в твоих текстовых полях

2 TIKO Насчет rs.RecordCount у меня иногда получалось что в рекордсете данные есть а RecordCount = 0.
Приходилось делать так
Код: plaintext
1.
2.
3.
rs.MoveLast
rs.MoveFirst
Msgbox rs.RecordCount



С уважением, Николай.
...
Рейтинг: 0 / 0
12.12.2007, 15:12
    #35004634
TIKO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования записи
RecordCount зависит от типа курсора если тип
rs.CursorType = adOpenStatic или если не ошибаюсь
adOpenDynamic, правильно выдает количество
по умолчание берет adOpenForwardOnly
...
Рейтинг: 0 / 0
12.12.2007, 15:14
    #35004647
klen_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования записи
...
Рейтинг: 0 / 0
12.12.2007, 15:17
    #35004664
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования записи
TIKORecordCount зависит от типа курсора если тип
rs.CursorType = adOpenStatic или если не ошибаюсь
adOpenDynamic, правильно выдает количество
по умолчание берет adOpenForwardOnlyИ обязательно adUseClient.
...
Рейтинг: 0 / 0
13.12.2007, 06:21
    #35006165
Се
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования записи
Спасибо всем за подсказки у меня с таким условием If rs.Recordset>0 организован как раз поиск по базе
попробую его как нить засунуть в форму записи
...
Рейтинг: 0 / 0
13.12.2007, 06:25
    #35006170
Се
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования записи
recordcount
млин совсем с утра мозг не работает
...
Рейтинг: 0 / 0
13.12.2007, 07:25
    #35006195
klen_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования записи
Сеили подкиньте идею !Идея
значит, делаешь индекс, со свойством "уникальные значения", в таблице.
По тому полю, где не должно быть повторений.
А в процедуре, где добавляешь запись пишешь
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
On Error GoTo metka
...
'здесь добавляю запись
...
metka:
   if Err.Number = тот самый Then
         MsgBox "ТАКОЕ ЗНАЧЕНИЕ УЖЕ ИМЕЕТСЯ"
   EndIf
...
Рейтинг: 0 / 0
13.12.2007, 09:32
    #35006344
Се
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования записи
что то не хочет у меня работать Recordcount
ошибок не выдает но и действий не выполняет
надо как то по двум полям только проверку проводить
...
Рейтинг: 0 / 0
13.12.2007, 09:50
    #35006381
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования записи
Сеесли запись существует то например msgbox "запись сществует .сделайте проверку данных" иначе выполнить update
один текст бокс это месяц , второй это год.Вы не ошиблись формулируя вопрос?
Нельзя сделать update если запись не существует.
...
Рейтинг: 0 / 0
13.12.2007, 10:21
    #35006458
Се
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования записи
Добрый день! Имелось ввиду что на форме я заполняю данные по текстбоксам их порядка 10-15, Месяц и Год надо проверить существование записи
Если запись в БД за такой месяц и Год есть то сообщить что запись существует и выкинуть снова на форму для проверки введенных данных самим пользователем , если запись не существует то как раз и прозвести запись
...
Рейтинг: 0 / 0
13.12.2007, 11:26
    #35006709
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования записи
СеДобрый день! Имелось ввиду что на форме я заполняю данные по текстбоксам их порядка 10-15, Месяц и Год надо проверить существование записи
Если запись в БД за такой месяц и Год есть то сообщить что запись существует и выкинуть снова на форму для проверки введенных данных самим пользователем , если запись не существует то как раз и прозвести записьТ.е. вы запрещаете редактировать записи?
Только вставка разрешена?
...
Рейтинг: 0 / 0
13.12.2007, 12:29
    #35007042
Се
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования записи
Да редактировать уже сделанную запись запрещается , запись делается 1 раз
Проверка и условие и нужны для того чтоб не было дубль записей
Вот сейчас придумал, создал в Акцес БД запрос
SELECT DISTINCTROW tblDataInput.Month, tblDataInput.Year, Count(*) AS [Count-tblDataInput]
FROM tblDataInput
GROUP BY tblDataInput.Month, tblDataInput.Year;
Вот теперь нужна подсказка как в VB 6.0
сделать надо что то типа
Dim I as Integer
I = ( как присвоить этой переменной значение из поля запроса(Count-tblDataInput) ???
If I=1 Then MsgBox ("Запись уже сделана!") End If End Sub
Else rs.Update

Вообщем что то типа этого ,
...
Рейтинг: 0 / 0
13.12.2007, 15:00
    #35007728
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования записи
Код: plaintext
1.
2.
3.
4.
5.
Private Function IsRecordExists(byval TheMonth as long, byval TheYear as long) As Boolean
   Dim rs as ADODB.Recordset
   set rs = Connection.Execute("SELECT COUNT (*) As RowsFound FROM table1 Where [Month] = " & _
   TheMonth & " and [Year] = " & TheYear)
   IsRecordExists = rs.Fields( 0 ).Value >  0 
End Function
...
Рейтинг: 0 / 0
13.12.2007, 19:01
    #35008782
Се
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования записи
Спасибоза подсказку , но дело в том что
вот это
Dim rs as ADODB.Recordset
set rs =
у меня уже есть и rs я уже не могу присвоить ещё одно значение
Вот часть моего кода
Private Sub cmdUpdate_Click()
Dim cn As New ADODB.Connection
Dim cm As New ADODB.Command
Dim rs As New ADODB.Recordset
Dim sql As String
Dim rc As Integer

Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = App.Path & "\ReportITD.mdb"
.Open
End With
sql = "select * from tblDataInput" ' создать запрос
Set rs = New ADODB.Recordset ' открыть набор записей
rs.Open sql, cn, adOpenDynamic, adLockOptimistic 'fl
' проверка, действительно ли пользователь
' хочет добавить данные
rc = MsgBox("Добавить запись?", vbYesNo + vbQuestion)
If rc = 6 Then
' процесс добавления данных
........
...
Рейтинг: 0 / 0
14.12.2007, 07:38
    #35009293
TIKO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования записи
пробуй так, может сработает (-:
Код: 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.
Dim rs As New ADODB.Recordset
Dim cn As New ADODB.Connection
Dim sql As String

Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = App.Path & "\ReportITD.mdb"
.Open
.BeginTrans
End With

sql = "select * from tblDataInput"
With rs
    .ActiveConnection = cn
    .CursorLocation = adUseClient
    .CursorType = adOpenDynamic
    .LockType = adLockBatchOptimistic
    .Open sql
    .Filter = "[Month]=" & TheMonth & " and [Year]= " & TheYear
    If .RecordCount >  0  Then
        MsgBox "Запись уже существует " & .Fields( 1 ).Value, vbCritical
    Else
        If MsgBox("Создать новую запись?", vbQuestion + vbOKCancel) = vbOK Then
            .AddNew
            .Fields( 1 ).Value = "что то"
            .Fields( 2 ).Value = "что еще"
            .UpdateBatch
        Else
            MsgBox "Что :( опять не будем создавать новую запись!!???", vbCritical
        End If
    End If
End With
cn.CommitTrans
rs.Close
cn.Close

Set rs = Nothing
Set cn = Nothing
...
Рейтинг: 0 / 0
14.12.2007, 09:31
    #35009447
Се
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования записи
TIKO спасибо буду пробовать! Помоему твой вариант должен работать
...
Рейтинг: 0 / 0
14.12.2007, 09:40
    #35009466
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования записи
конечно могу и ошибаться, т.к. проверить нет возможности, но :

а если фильтр использовать


I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
17.12.2007, 10:34
    #35013819
Се
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования записи
TIKOпробуй так, может сработает (-:
Код: 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.
Dim rs As New ADODB.Recordset
Dim cn As New ADODB.Connection
Dim sql As String

Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = App.Path & "\ReportITD.mdb"
.Open
.BeginTrans
End With

sql = "select * from tblDataInput"
With rs
    .ActiveConnection = cn
    .CursorLocation = adUseClient
    .CursorType = adOpenDynamic
    .LockType = adLockBatchOptimistic
    .Open sql
    .Filter = "[Month]=" & TheMonth & " and [Year]= " & TheYear
    If .RecordCount >  0  Then
        MsgBox "Запись уже существует " & .Fields( 1 ).Value, vbCritical
    Else
        If MsgBox("Создать новую запись?", vbQuestion + vbOKCancel) = vbOK Then
            .AddNew
            .Fields( 1 ).Value = "что то"
            .Fields( 2 ).Value = "что еще"
            .UpdateBatch
        Else
            MsgBox "Что :( опять не будем создавать новую запись!!???", vbCritical
        End If
    End If
End With
cn.CommitTrans
rs.Close
cn.Close

Set rs = Nothing
Set cn = Nothing

К сожалению не работает :((
Фильтр не проверяет и запись новую в рекордсет не делает :((
...
Рейтинг: 0 / 0
17.12.2007, 11:12
    #35013931
gjghjc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования записи
А что при пошаговом выполнении кода получается???
хоть какой нибудь из MsgBox-ов срабатывает?

С уважением, Николай.
...
Рейтинг: 0 / 0
17.12.2007, 11:33
    #35013993
Се
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования записи
нет ничего не срабатывает кроме
If MsgBox("Создать новую запись?", vbQuestion + vbOKCancel) = vbOK
и последнего msgBox
MsgBox "Введеная вами запись добавлена в БД"
Главное что пошагово и ошибок не выдает
правда пришлось немного изменить строку .Filters а то выпадала
Ошибка 3001....
потом пришлось вот здесь попробовать по другому
.AddNew
.Fields(1).Value = "что то" отработало нормально
.Fields(2).Value = "что еще" отработало нормально
а дальше добавлял те поля что есть ругался что
.Fields(3 и т.д).Value = равны Null
.UpdateBatch
...
Рейтинг: 0 / 0
17.12.2007, 11:59
    #35014074
DEP1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования записи
Привет всем.

А какой тип имеют поля
Код: plaintext
Month
и
Код: plaintext
Year
?
...
Рейтинг: 0 / 0
17.12.2007, 12:17
    #35014157
Се
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования записи
текстовые поля
...
Рейтинг: 0 / 0
17.12.2007, 13:05
    #35014386
DEP1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка существования записи
может вы проверите данные например из поля Month с перемонной TheMonth или Year может вручную строки разные. Я думаю в коде
Код: plaintext
TIKO
все нормально если в полях будут такие данных то должно выдать сообшение.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проверка существования записи / 25 сообщений из 33, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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