将数据插入关系表

时间:2014-01-18 08:58:09

标签: vb.net ms-access

我在表的访问关系中建立了关系表数据库,如下图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数据类型的变量。”我不知道什么是错误以及如何弄乱,所以请给我任何解决方案。 。 。

或者只是告诉它是否因为关系表或数据类型错误而导致

3 个答案:

答案 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。