Attila54
Messages postés409Date d'inscriptionjeudi 30 juin 2005StatutMembreDernière intervention21 novembre 2013
-
Modifié par Attila54 le 27/08/2013 à 15:34
Attila54
Messages postés409Date d'inscriptionjeudi 30 juin 2005StatutMembreDernière intervention21 novembre 2013
-
28 août 2013 à 18:48
Bonjour,
j'ai une appli qui, lors de son lancement, crée un petit fichier ophtalmo.accdb (via une fonction) dans le rep "mes documents" de ma station si le fichier n'existe pas.
Voila un morceau de la sub :
Public Function CreateAccessDatabase(ByVal DatabaseFullPath As String) As Boolean
Dim cat As New ADOX.Catalog()
Dim tbl1 As New ADOX.Table
Dim tbl2 As New ADOX.Table
Try
cat.Create("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & BddPath & "\Ophtalmo.accdb")
' Création de la table Praticiens
With tbl1
.Name = "Praticiens"
' le seul champ de cette table
.Columns.Append("Praticien", ADOX.DataTypeEnum.adVarWChar, 50)
End With
cat.Tables.Append(tbl1)
' Création de la table Consultations
With tbl2
.Name = "Consultations"
' les champs de la BDD
.Columns.Append("praticien", ADOX.DataTypeEnum.adVarWChar, 50)
.Columns.Append("day", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("nom", ADOX.DataTypeEnum.adVarWChar, 50)
.Columns.Append("prenom", ADOX.DataTypeEnum.adVarWChar, 50)
.Columns.Append("naissance", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("age", ADOX.DataTypeEnum.adVarWChar, 3)
.Columns.Append("oeil", ADOX.DataTypeEnum.adVarWChar, 2)
.Columns.Append("S", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("C", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("Axe", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("sc", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("cc", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("ac", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("dva", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("add", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("nva", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("K1", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("K2", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("QI", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("Pachy", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("ACD", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("AL", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("AD", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("Pseudophake", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("Pupilmeso", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("Pupilphoto", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("Pupilmax", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("SL", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("QL", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("Q1et2", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("Epsilon", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("QT", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("Qideal", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("QF", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("deltaQ", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("KIMAGE", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("TS", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("relift", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("version", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("flagimage", ADOX.DataTypeEnum.adVarWChar, 1)
.Columns.Append("qileft", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("qiright", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("deltaqi", ADOX.DataTypeEnum.adVarWChar, 10)
.Columns.Append("qefficient", ADOX.DataTypeEnum.adVarWChar, 10)
End With
cat.Tables.Append(tbl2)
Return True
Catch Excep As System.Runtime.InteropServices.COMException
messageaff = "Database building Error : " & Excep.Message
infoaff = "Information"
MessageBox.Show(messageaff, infoaff, MessageBoxButtons.OK, MessageBoxIcon.Warning)
Return False
Finally
cat = Nothing
End Try
End Function
Je rencontre le souci suivant depuis ce matin, après test sur une nouvelle station equipée vs2012
Je n'ai donc pas le ophtalmo.accdb dans "mes documents"
lorsque le fonction tente de le créer, j'ai :
Database building error - classe non enregistrée
Comment ce fait il d'après vous ?
Je précise que les références suivantes sont ok
- Microsoft ADO Ext. 2.8 for DDL and Security
- Microsoft Office 14.0 Object Library
- Microsoft.Office.Interop.Excel
- Microsoft.VisualBasic.PowerPacks.Vs
et pour les espaces de noms, ADOX est bien présent aussi
Je n'ai aucune erreur de build en F5
Merci
--
A voir également:
An error occurred while attempting to initialize the borland database engine (error $210d)
Attila54
Messages postés409Date d'inscriptionjeudi 30 juin 2005StatutMembreDernière intervention21 novembre 20131 28 août 2013 à 08:47
Bonjour Galain
C'est bien le provider que j'avais initialement. Il fonctionnait sur 2010 et sur 2013.
Si je mets un point d'arrêt sur cat.Create("Provider=Microsoft.AC ... bddpath me donne ""C:\Users\moncompte\Documents" donc "mes documents" et le cat.create me donne "+ ADOX._Catalog {ADOX._Catalog} ADOX._Catalog"
Attila54
Messages postés409Date d'inscriptionjeudi 30 juin 2005StatutMembreDernière intervention21 novembre 20131 28 août 2013 à 15:06
par contre je viens de m'apercevoir d'une chose bizarre
une ancienne version fonctionnelle et compilée me fait pareil sur cette station et fonctionne parfaitement bien sur une autre ..... me demande si y'aurait pas un souci entre vs2012 et une ancienne version qui aurait été mal désinstallée ......
Attila54
Messages postés409Date d'inscriptionjeudi 30 juin 2005StatutMembreDernière intervention21 novembre 20131 28 août 2013 à 18:48
Bon ben on dirait bien que c'est un "chicorage" de versions VS
Je viens de remettre VS2012 sur une station "vierge" et plus de souci. VS c'est bien mais que de soucis a la desinstallation