2014-01-18 4 views
0

я сделал базу данных реляционных таблиц в отношении доступа таблиц задаются этим изображением enter image description hereвставки данных в реляционные таблицы

Когда я пытаюсь вставить данные в таблицу, используя следующий запрос

qrY = "INSERT INTO `reg_table` (`Regn_ID`, `Full_name`, `Addr`, `City`, `PIN Code`, `Email`, `Contact_No`, `Fee`, `payment_type`, `checkordraft_No`, `regn_Date`, `conTctID`) VALUES " 
    qrY += "(NULL, " 
    qrY += "'Bb'," 
    qrY += "'Bb'," 
    qrY += "'Bb'," 
    qrY += "'12312'," 
    qrY += "'Bb'," 
    qrY += "'Bb'," 
    qrY += "'Bb'," 
    qrY += "'Bb'," 
    qrY += "'Bb'," 
    qrY += "'18-04-2014'," 
    qrY += "'1'" 
    qrY += ")"" 

это дает мне ошибку «Вы пытались присвоить значение Null переменной, которая не является типом данных Variant». Я не знаю, в чем ошибка и как с ней работать, пожалуйста, дайте мне какое-нибудь решение. , , ,

или просто Скажите Это вызывает из реляционных таблиц или типов данных ошибок

+0

Любое решение: прочитайте о типах столбцов, поддерживаемых доступом ms, и ВСЕГДА используйте параметры (любой пример ado.net должен иметь их) вместо конкатенации строк для значений запроса. – MikeSW

+0

Является ли Regn_ID полем autonumber? – Steve

+0

Да @Steve это автоинкремент –

ответ

1

Regn_ID является Auto поля приращения, которое вызывает ошибку.

Попробуйте как этот

qrY = "INSERT INTO `reg_table` (`Full_name`, `Addr`, `City`, `PIN Code`, `Email`, `Contact_No`, `Fee`, `payment_type`, `checkordraft_No`, `regn_Date`, `conTctID`) VALUES " 
    qrY += "('Bb'," 
    qrY += "'Bb'," 
    qrY += "'Bb'," 
    qrY += "'12312'," 
    qrY += "'Bb'," 
    qrY += "'Bb'," 
    qrY += "'Bb'," 
    qrY += "'Bb'," 
    qrY += "'Bb'," 
    qrY += "'18-04-2014'," 
    qrY += "'1'" 
    qrY += ")"" 
+0

. Yess Man, он работает благодаря @Vignesh Kumar And Steve. –

+0

Это было поле автоматического приращения, которое вызывало ошибку –

1

Если Regn_ID является AutoNumber то не какое-либо значение для него и удалить имя поля в FieldList. Автономный номер генерируется непосредственно кодом базы данных, и вы не должны пытаться установить его на какое-либо значение.

Однако я думаю, что у вашего кода есть другие проблемы, потому что вы не должны передавать строки, где ожидаются Integer или даты.

Правильный синтаксис должен быть чем-то вроде этого

qrY = "INSERT INTO reg_table (Full_name, Addr, City, PIN Code, Email, Contact_No," & _ 
     "Fee, payment_type, checkordraft_No, regn_Date, conTctID) VALUES " & _ 
     "'Bb','Bb','Bb',12312,'Bb','Bb','Bb','Bb','Bb',#18-04-2014#,1)" 

Но это еще можно было бы неправильно, потому что я действительно не могу догадаться, что тип данных Pin_Code, Contact_No, Fee, payment_type, checkordraft_No. Если они не являются строками, вы не включаете значение в одинарные кавычки.

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

+0

Спасибо, что оба решения работают –

+0

Но regn_date - это строка в базе данных? – Steve

+0

Нет короткой даты –

1

Решения от Steve and Vignesh верны, но я также хотел бы добавить, что вы не можете установить первичный ключ в NULL, когда-либо.

Смежные вопросы