2010-07-02 7 views
3

Je souhaite mettre à jour ou insérer si manquant dans une base de données msaccess en utilisant asp.mise à jour insert msaccess

je tentais quelque chose comme:

IF EXISTS (SELECT * FROM Table1 WHERE Column1='SomeValue') 
    UPDATE Table1 SET (...) WHERE Column1='SomeValue' 
ELSE 
    INSERT INTO Table1 VALUES (...) 

et

UPDATE Table1 SET (...) WHERE Column1='SomeValue' 
IF @@ROWCOUNT=0 
    INSERT INTO Table1 VALUES (...) 

INSERT ou UPDATE par eux-mêmes fonctionner correctement. mais quand j'utilise les deux avec l'une des méthodes, il échoue.

Répondre

0
Set db = CreateObject("ADODB.Connection") 
set rs = Server.CreateObject("ADODB.Recordset") 
     db.Open "DSN=name" 
     rs.CursorLocation = 3 
     rs.Open "SELECT * FROM Table WHERE Field="&Variable, db, 3, 3 
     if rs.EOF then 
     rs.AddNew 
     end if 
      rs("fieldName1") = Variable1 
      rs("fieldName2") = Variable2 
      rs("fieldName3") = Variable3 
     rs.Update 
     rs.Close 

si le SELECT ne renvoie rien, il ajoute un enregistrement. après avoir ajouté le curseur est sur l'enregistrement ajouté. si le SELECT renvoie un enregistrement (puisque Field est unique), le curseur se trouve sur l'enregistrement sélectionné.

et que cela met à jour l'enregistrement où le curseur est :)

1

Vous ne pouvez pas exécuter deux instructions SQL à la fois dans Access. Vous devez mettre à jour et insérer dans deux opérations distinctes.

Questions connexes