Jump to content

Ошибка - несоответствие типов


Recommended Posts

Всем привет.

Срочно нужна помощь!

Вопрос 1.

У всех стандартно установлена БД BIBLIO, она находится по этому адресу:

"C:\Program Files\Microsoft Visual Studio\VB98\BIBLIO.mdb"

В прикеплённом файле находится код проекта. Смысл программы заключается в том, чтобы вывести поля таблицы Authors в соответствующих элеентах формы.

При запуске програмы, происходит ошибка: "Несоответствие типов".

Незнаю что и делать, поэтому обращаюсь к вам.

Вопрос 2.

Не могу добавить поле FOTO в БД BIBLIO с помощью Access, в смысле не активна кнопка "Сохранить". При открытии БД в Access выводится диалоговое окно, что типо БД создана в более ранней версии и нужно её преобразовать, но такогобыт не может, у ня ОФИС - 2003. Преобразовывал бесполезно.

А вот в БД NWIND всё нормально сохраняется:

"C:\Program Files\Microsoft Visual Studio\VB98\NWIND.mdb"

Это поле необходио для вывода картинок в этом же проекте в элементе OLE.

Может можно как добавить поле Foto c типом поля - поле объекта OLE в VB, записав программный код.

Option Explicit

Dim vldmsg(4) As String 'объявить масив сообщений

Private Sub cmdRestore_Click()

Data1.UpdateControls 'восстановить значение текстового поля

End Sub

Private Sub cmdupdate_Click()

Data1.UpdateControls

End Sub

Private Sub Form_Load()

OpenDB 'открыть БД,установить динамический набор

BindControls 'связать элементы управления с полями данных

makevldmsgarray

End Sub

Public Sub OpenDB()

Dim bdNAME As String

Dim cdbNAME As String

Dim ctb1NAME As String

Dim BExclusive As Boolean 'объявить логическую переменную

Dim breadonly As Boolean

Dim dbDenyWrite As Boolean

cdbNAME = "C:\Program Files\Microsoft Visual Studio\VB98\BIBLIO.mdb"

ctb1NAME = "Authors" 'указать на таблицу данных

BExclusive = True 'установить эксклюхивный режим

breadonly = True 'установить режим только для чтения

Data1.DatabaseName = cdbNAME 'задать свойство DatabaseName

Data1.RecordSource = ctb1NAME 'задать свойство RecordSource

Data1.Exclusive = BExclusive

Data1.ReadOnly = dbDenyWrite + breadonly

Data1.Refresh 'обнорвить совйства элемента data

End Sub

Public Sub BindControls()

Dim cfield1 As String

Dim cfield2 As String

Dim cfield3 As String

cfield1 = "Author"

cfield2 = "Au_ID"

cfield3 = "Year Born"

Text1.DataField = cfield1

Label1.DataField = cfield2

Check1.DataField = cfield3

End Sub

Public Sub Data1_Reposition()

MsgBox "перемещение указателя..."

End Sub

Public Sub Data1_Validate(Action As Integer, save As Integer)

MsgBox vldmsg(Action) 'выдать сообщение в зависимости от действия пользователя

End Sub

Public Sub makevldmsgarray()

vldmsg(vbDataActionMoveFirst) = "MoveFirst"

vldmsg(vbDataActionMovePrevious) = "MovePrevious"

vldmsg(vbDataActionMoveNext) = "MoveNext"

vldmsg(vbDataActionMoveLast) = "MoveLast"

End Sub

Если кто может, оставьте мыло, я пришлю исходник.

Жалко нет на форуме функции добавления файлов

Link to comment
Share on other sites

Прошёл глазами весь код, вроде всё ОК. Кидай исходник сюда: f-artyom@yandex Тема: Исходник из Софтодрома.

Link to comment
Share on other sites

Привет!!! :bye1::bye1:

НА первый вопрос ответ(Вопрос наверное даже) : что ты хочешь сделать этой строчкой:

Check1.DataField = cfield3
?

НА сколько я знаю Check1 принимает логические(булевские данные) данные (True, False) копай в эту сторону.

На второй вопрос : А ты пробовал 97офисом преобразовывать?

При открытии БД в Access выводится диалоговое окно, что типо БД создана в более ранней версии и нужно её преобразовать, но такого быть не может

Как не может? VB6 создан в 98году, соотвественно офис на то момент был самым последним 97...

Edited by neic
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...