ADO вывод данных в MSFlexGrid из проекта VB

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Pasha S
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 27.05.2006 (Сб) 14:33

ADO вывод данных в MSFlexGrid из проекта VB

Сообщение Pasha S » 27.05.2006 (Сб) 14:51

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


Код: Выделить всё
Private Sub Command1_Click()
Dim k(7) As Variant, z(7) As Variant
Dim cmd As String
Dim sql As String
Dim cn As ADODB.Connection: Dim rs As ADODB.Recordset
cmd = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source="&                 
           "C:\Program Files\Microsoft Visual Studio\VB98\Inf.mdb"
Set cn = New ADODB.Connection

With cn
           .ConnectionString = cmd
           .Open
End With

sql = "select*from Clients"
rs.CursorType = adOpenKeyset

With rs
            .Open sql, cn, adOpenKeyset, adLockOptimistic
End With

With rs
            .MoveLast
Dim f As Field
For Each f In rs.Fields
Next
             z(t) = InputBox("Введите данные для занесения в поле" & k(t), "Добавление")
             k(t) = f.Name
             t = t + 1
End With

With rs
             .AddNew Array(k(1), k(2), k(3), k(4), k(5), k(6), k(7)), Array(z(1), z(2), z(3), z(4), z(5), z(6), z(7))
End With

rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing

End Sub
Последний раз редактировалось Pasha S 27.05.2006 (Сб) 17:54, всего редактировалось 10 раз(а).

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 27.05.2006 (Сб) 15:01

Когда автор вопроса действительно захочет получить ответ, он воспользуется кнопками форматирования и превратит нечитаемую лапшу во что-то более осмысленное...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Pasha S
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 27.05.2006 (Сб) 14:33

Сообщение Pasha S » 27.05.2006 (Сб) 15:34

а что надо отфармотировать?
так лучше?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 27.05.2006 (Сб) 15:38

Нет, так намного хуже.

По двум причинам: во-первых, из кода была вырезана реальная причина ошибки, и во-вторых, кнопки оформления кода - это кнопки оформления кода, и они не имеют отношения к кнопкам раскраски кода.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Pasha S
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 27.05.2006 (Сб) 14:33

Сообщение Pasha S » 27.05.2006 (Сб) 15:56

так лучше? :roll:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 27.05.2006 (Сб) 17:25

Было бы, если бы в коде использовались такие банальные и общепринятые вещи, как отступы.
На самом деле, отступам учат в школе. Без них чтение программы превращается в "увлекательное" расследование.
Код: Выделить всё
for i=1 to 5
for j=1 to 10
print i,j
next
next

Код: Выделить всё
for i=1 to 5
  for j=1 to 10
    print i,j
  next
next

Видишь разницу?
Я вижу.

Да, отступы бывают ещё между строками. Не между каждыми, а между логическими блоками кода.

ЗЫ. Всё сказанное является моим личным мнением, которое объясняет, почему я не хочу даже начинать разбираться в этом коде. Топик не закрыт, и любой, кого подобные мелочи не волнуют, ответит на твой вопрос.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Pasha S
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 27.05.2006 (Сб) 14:33

Сообщение Pasha S » 27.05.2006 (Сб) 17:56

вот сделал как мог....
просто с этой фигнёй уже 2 день сижу не могу ничё сделать...поэтому вот и обратился сюды за помощью...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 27.05.2006 (Сб) 19:04

Ужас...
Возможно, дело в том, что Next размещен неправильно, его надо сместить ниже, включив запрос данных в цикл:
Код: Выделить всё
With rs
  .MoveLast
  Dim f As Field
  For Each f In rs.Fields
    t = t + 1
    k(t) = f.Name
    z(t) = InputBox("Введите данные для занесения в поле" & k(t), "Добавление")
  Next
End With

Но что на самом деле нужно автору, знает видимо только он.

З.Ы. Чем больше смотрю, тем больше пугаюсь...
Pasha S, лучше сотри все нафиг и начни писать сначала. Код, который ты выложил, ужасен.
Lasciate ogni speranza, voi ch'entrate.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 28.05.2006 (Вс) 6:32

Pasha S
Отступы размером в 12 - это я бы назвал издевательством...


В общем, понятно, что человек никогда не писал код, и потому толку не добиться...
Проблема в том, что rs в коде не создаётся.


В следующий раз оформленную подобным образом тему снесу нафиг. Ужас.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Pasha S
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 27.05.2006 (Сб) 14:33

Сообщение Pasha S » 28.05.2006 (Вс) 10:31

я сам нашёл в чём была причина ошибки....но всё равно спасибо за советы.

Код: Выделить всё
sql = "select*from Clients"
Set rs = New ADODB.Recordset  - была пропущена сия строка
rs.CursorType = adOpenKeyset

With rs
            .Open sql, cn, adOpenKeyset, adLockOptimistic
End With
Последний раз редактировалось Pasha S 28.05.2006 (Вс) 13:08, всего редактировалось 1 раз.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 28.05.2006 (Вс) 10:43

Pasha S писал(а):я сам нашёл в чём была причина ошибки....

Код: Выделить всё
Sett rs = New ADODB.Recordset  - была пропущена сия строка


GSerg писал(а):Проблема в том, что rs в коде не создаётся.



:roll:
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 28.05.2006 (Вс) 10:44

Так тебе, вроде, на это указывали.
GSerg писал(а):Проблема в том, что rs в коде не создаётся.

Правда в придирках к оформлению кода этот ответ затерялся (впрочем, придирки тоже по существу -- приятнее читать хорошо оформленный код).

Пока набирал, GSerg уже отписался.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Pasha S
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 27.05.2006 (Сб) 14:33

Сообщение Pasha S » 28.05.2006 (Вс) 13:07

GSerg
просто я уже зашёл сюда после того как нашёл ошиьку...
но всё равно спасиб за совет!

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 29.05.2006 (Пн) 7:36

[offtop]
GSerg писал(а):[27.05.2006 (Сб) 16:38]... во-первых, из кода была вырезана реальная причина ошибки ...

GSerg писал(а):[27.05.2006 (Сб) 18:25]... не хочу даже начинать разбираться в этом коде ...

ЗЫ: и вовсе GSerg не бесчувственный, как думают некоторые :)


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList  
cron