Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> В чем ошибка? Не работает код! 
V
    Опции темы
FRC
Дата 12.11.2006, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 15.10.2006

Репутация: нет
Всего: нет



Доброго все времени суток, спасибо что уделили внимание моей проблемке. Прозьба укажите мне на мою ошибку! Если чего не понятно поясню более подробно.
Код

Private Sub Command3_Click()
Dim cmd As String, sql As String, cn As ADODB.Connection
Dim rs As ADODB.Recordset
'создание запроса
sql = "SELECT * FROM TAB WHERE (NomerIP = " & txtDel.Text & ")"
'создать сроку подключения
cmd = "Provider = microsoft.jet.OLEDB.4.0; Data Source=C:\BAZA.mdb"
'установка соединеия с базой
Set cn = New ADODB.Connection
cn.ConnectionString = cmd
cn.Open 'открыть набор записей
Set rs = New ADODB.Recordset
rs.Open sql, cn, adOpenDynamic, adLockOptimistic
If rs.RecordCount > 0 Then
rs.Delete ' процедура удаления
MsgBox "Запись из базы данных удалена!", vbInformation + vbOKOnly, "Удаление выполнено!"
End If
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub


PM MAIL   Вверх
boevik
Дата 12.11.2006, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 12
Всего: 35



какая ошибка выскакивает?

Добавлено @ 11:34 
Одна из ошибок, "прозьба" пишется через с "просьба".
A если серьезно, то NomerIP скорее свего в таблице определен как text, а поэтому запрос состовляется с апострофом.
Код

sql = "SELECT * FROM TAB WHERE (NomerIP = '" & txtDel.Text & "')"



--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
FRC
Дата 12.11.2006, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 15.10.2006

Репутация: нет
Всего: нет



Увожаемый boevik, благодарю за посказку! Если я ставлю апостроф, программа выдает ошибку "Несоответствие типов данных в выражении условия отбора" может я чего в коде не то написал или не написал???
PM MAIL   Вверх
Voldemar2004
Дата 12.11.2006, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Код
sql = "SELECT * FROM TAB WHERE NomerIP = " & txtDel.Text

FRC, если у тебя поле NomerIP - числовое - то лучше так.


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
boevik
Дата 12.11.2006, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 12
Всего: 35



FRC, давай поподробнее, тип поля NomerIP? Какая ошибка выскакивает в первом коде? и т.д., чем больше данных, тем быстрее поможем.


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
FRC
Дата 12.11.2006, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 15.10.2006

Репутация: нет
Всего: нет



boevik, На форме находится MSHFlexGrid1 отображающая данные из Базы данных BAZA.mdb  в базе есть таблица TAB в которой содержить несколько столбцов один из них называется NomerIP (поле числовое) в него вносятся целые числа например: 358934. Также на форме нахдится кнопка "Удалить" и TextBox "txtDel" юзер вводит в TextBox  определенный номер и нажимает кнопку после чего запись удаляется из БД и также она изчезает из MSHFlexGrid1
В первом коде ошибки ни какой не происходит, просто кнопка не реагирует ни как просто нажимается.
Во втором случае с апострофом 
Цитата
 программа выдает ошибку "Несоответствие типов данных в выражении условия отбора"

Мне кажется, что я что-то в запросе sql напутал надо чтобы вся строка удалялась содержащая число введенное в TextBox
____________________________
|358934|Иванов И.И.|Москва|муж| - должна удалиться эта строка после нажатия на кнопку
|23345|Иванова И.С.|Смоленск|жен|

Voldemar2004, нет никакой реакции просто кнопка нажимается. smile 
Это вроде бы все.
PM MAIL   Вверх
boevik
Дата 12.11.2006, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 12
Всего: 35



Цитата(FRC @  12.11.2006,  11:14 Найти цитируемый пост)
sql = "SELECT * FROM TAB WHERE (NomerIP = " & txtDel.Text & ")"

Так ты делаешь select, а не удаление.

Следующая команда выполнет удаление.
Код

sql = "DELETE FROM TAB WHERE (NomerIP = " & txtDel.Text & ")"



В общем виде лучше записать так:
Код

Private Sub Command3_Click()
Dim cmd As String, sql As String, cn As ADODB.Connection
'создание запроса
sql = "DELETE FROM TAB WHERE (NomerIP = " & txtDel.Text & ")"
'создать сроку подключения
cmd = "Provider = microsoft.jet.OLEDB.4.0; Data Source=C:\BAZA.mdb"
'установка соединеия с базой
Set cn = New ADODB.Connection
cn.Open cmd
cn.Execute sql 'удаление записи
MsgBox "Запись из базы данных удалена!", vbInformation + vbOKOnly, "Удаление выполнено!"
End If
cn.Close
Set cn = Nothing
End Sub



--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
FRC
Дата 12.11.2006, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 15.10.2006

Репутация: нет
Всего: нет



boevik, Все работает нормально, только не обновляет MSHFlexGrid1 после нажатяи кнопки! Как висела там запись так и висит, тлько после повторного запуска программы она исчезает! Чего дописать надо чтобы сразу исчезала?
PM MAIL   Вверх
Voldemar2004
Дата 12.11.2006, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Свойство Refresh.


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
FRC
Дата 12.11.2006, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 15.10.2006

Репутация: нет
Всего: нет



Voldemar2004, Свойство Refresh бузусловно помогло, но возникла другая проблема, при обновлении пропадает раскраска грида под зебру, происходит это следующим образом:
Код

Private Sub Form_Load()
'Цвет "Зебра"
For i = 1 To MSHFlexGrid1.Rows - 1 Step 2
   MSHFlexGrid1.Row = i
   For j = 0 To MSHFlexGrid1.Cols - 1
      MSHFlexGrid1.Col = j
      MSHFlexGrid1.CellBackColor = RGB(107, 250, 192) 'цвет фона
      MSHFlexGrid1.CellForeColor = RGB(0, 0, 0) 'цвет шрифта
   Next
Next
End Sub

Куда лутьше поставить Adodc1.Refresh???
PM MAIL   Вверх
boevik
Дата 13.11.2006, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 12
Всего: 35



Раскраску вынеси в отдельную процедуру и вызывай её когда требуется (после refresh, к примеру)


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
FRC
Дата 13.11.2006, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 15.10.2006

Репутация: нет
Всего: нет



boevik, Voldemar2004, ОГРОМНОЕ спасибо!!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0471 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.