2016-09-01 1 views
0

dans mon application wxPython que je développe J'ai écrit une méthode qui va ajouter un nouvel enregistrement dans une base de données d'accès (.accdb). J'ai obtenu ce code de la recherche en ligne mais je ne suis pas capable de le faire fonctionner. Voici le code: -Python pour ouvrir le jeu d'enregistrements ADODB et ajouter un nouvel enregistrement

def Allocate_sub(self, event): 
    pth = os.getcwd() 
    myDb = pth + '\\myAccessDB.accdb' 
    DRV = '{Microsoft Access Driver (*.mdb)}' 
    PWD = 'pw' 
    # connect to db 
    con = win32com.client.Dispatch(r'ADODB.Connection') 
    con.Open('DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=%s' % (myDb)) 
    cDataset = win32com.client.Dispatch(r'ADODB.Recordset') 
    #cDataset.Open("Allocated_Subs", con, 3, 3, 1) 
    cDataset.Open("Allocated_Subs", con, 3, 3, 1) 
    cDataset.AddNew() 
    cDataset.Fields.Item("Subject").Value = "abc" 
    cDataset.Fields.Item("UniqueKey").Value = "xyzabc" 
    cDataset.Update() 
    cDataset.close() 
    con.close() 

Cependant chaque fois que je déclenche ce code en cliquant sur le bouton auquel je le liez je reçois une erreur en disant: -

Quelqu'un peut-il s'il vous plaît me aider à résoudre ce ou me faire savoir d'une manière différente d'ouvrir un jeu d'enregistrements en utilisant ADODB et ensuite ajouter un nouvel enregistrement dans celui-ci.

Merci beaucoup.

Cordialement, Premanshu

Répondre

1

je me suis dit la solution, l'affichage ici juste au cas où quelqu'un se réfère à elle ... c'est une petite correction en ligne

cDataset.Open("Allocated_Subs", con, 3, 3, 1) 

il devrait être: -

cDataset.Open("Allocated_Subs", con, 1, 3) 

Cordialement, Premanshu