我在表的访问关系中建立了关系表数据库,如下图
当我尝试使用以下查询将数据插入表格时
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 :(得分:1)
Regn_ID是自动增量字段,导致错误。
试试这个
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 += " )""
答案 1 :(得分:1)
如果Regn_ID是自动编号,则不要为其设置任何值,并删除字段列表中的字段名称。自动编号由数据库代码直接生成,您不应尝试将其设置为任何值。
但是我认为您的代码存在其他问题,因为您不应该传递期望为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的数据类型是什么。如果它们不是字符串,那么您不会将值括在单引号中。
然而,这个示例确实是因为您传递了测试值,但在实际工作场景中,您有值的变量,并且您需要使用参数化查询方法,其中每个参数都应设置为数据库所需的正确数据类型。
答案 2 :(得分:1)
Steve和Vignesh的解决方案是正确的,但我还想补充一点,你不能将主键设置为NULL。