И снова про AddNew

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
gjghjc
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 661
Зарегистрирован: 13.10.2002 (Вс) 8:28
Откуда: БАЛАКЛАВА!!

И снова про AddNew

Сообщение gjghjc » 03.08.2004 (Вт) 16:17

Объясните мне дураку непонятливому почему так происходит.
Код: Выделить всё
Select Case KeyCode
    Case vbKeyReturn
BaseAdd = IspFile + "\"
TableAdd = "temp1"
Set dbfAdd = DAO.OpenDatabase(BaseAdd, False, False, "dBASE IV;LANGID=0x0419;CP=866;COUNTRY=0")

SQLStrAdd = "select * from " & TableAdd
rsAdd.Close
Set rsAdd = dbfAdd.OpenRecordset(SQLStrAdd, dbOpenDynaset, dbAppendOnly)

        With rsAdd
        .AddNew
        .Fields("Поле1") = txtText.Text
        .Fields("Поле2") = rsSearch.Fields("LAST_NAME") & " " & Left(rsSearch.Fields("first_NAME"), 1) & "." & Left(rsSearch.Fields("father_NAM"), 1) & "."
        .Fields("Поле3") = CCur(Replase(txtAmountSumm.Text, ".", ","))
        .Fields("Поле4") = rsSearch.Fields("LAST_NAME") & " " & Left(rsSearch.Fields("first_NAME"), 1) & Left(rsSearch.Fields("father_NAM"), 1)
        .Fields("TRANS_DET") = txtTr_Det.Text
        .Update
        End With
        txtAmountSumm.Text = ""
        txtSearch.Text = ""
End Select
rsAdd.Close
dbfAdd.Close

На машине на которой стоит Win2000 & Office97 все работает как часики а на 98-ой Винде и таком же офисе ни хрена не пашет, говорит что не может открыть рекордсет для записи и хоть ты тресни. Затыкается как раз на AddNew. Искал по форуму и увидел что тема обсуждалась и не раз но ссылка от Rainbow не работает. Помогите добавить новую запись. Остается только добавить, что записи добавляю в файл который перед этим копируется из чистого файла с нехитрым названием Shablon.dbf.
Утро добрым не бывает!

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 04.08.2004 (Ср) 13:19

А не знаю :)
Может, разные версии DAO. Там, где Win98 что-нибудь отваливается...
Ты искал решение в нете по описанию ошибки? На microsoft?
Но это так... Если нижесказанное не спасет, то приведи полный текст ошибки и номер.

Слушай, а это у тебя кусок упрощенный показан (то есть в этой процедуре в жизни все намного сложнее) или ты действительно открываешь рекордсет только для того, чтобы туда одну запись добавить и потом его закрываешь (он тебе больше не нужен)?
Почему ты не используешь
dbfAdd.Execute "INSERT INTO temp1 ([поле1], [поле2], [поле3]) values (value1, value2, value3)"?
Это быстрее - данные не таскаются на клиента.
Учиться - значит открывать для себя то, что уже знаешь. <...> Учить - значит напоминать другим о том, что они знают это также хорошо, как и ты. <...> Лучше всего ты учишь тому, чему тебе самому больше всего надо научиться. (Р. Бах)

gjghjc
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 661
Зарегистрирован: 13.10.2002 (Вс) 8:28
Откуда: БАЛАКЛАВА!!

Сообщение gjghjc » 05.08.2004 (Чт) 17:23

ПРЕМНОГО БЛАГОДАРЕН ВСЕ РАБОТАЕТ НА 5 БАЛЛОВ
Утро добрым не бывает!

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 05.08.2004 (Чт) 18:55

Рада за тебя :)
Учиться - значит открывать для себя то, что уже знаешь. <...> Учить - значит напоминать другим о том, что они знают это также хорошо, как и ты. <...> Лучше всего ты учишь тому, чему тебе самому больше всего надо научиться. (Р. Бах)


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

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

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

    TopList