Erreur 2465 avec LAunchCD

Résolu
Edy360 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -  
Edy360 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -
salut,

J'effectue un import Excel vers Access par l'intermédiaire d'un bouton dans un formulaire, pour cela j'utilise un module (Module1) puis en VBA un bouton qui me lance directement la boite de diaaogiue pour aller chercher le fichier sur mon ordi.

L'import se fait dans un table PRC EXPRESS A. les données sont importées mais à la fin il me met l'erreur d'éxécution 2465.

- Peut ton supprimer ce message ?
- Esct qu'on ne va pas dans mon code ?

Je tente mais n'arrive à rien :

CODE MODULE 1 :

Option Compare Database

Public Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
"GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

Private Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type

Function LaunchCD(ByRef strform As Form, ByRef nt As String, ByRef nf As String) As String

Dim OpenFile As OPENFILENAME
Dim lReturn As Long
Dim sFilter As String
OpenFile.lStructSize = Len(OpenFile)
OpenFile.hwndOwner = strform.Hwnd
OpenFile.lpstrFile = String(257, 0)
OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1
OpenFile.lpstrFileTitle = OpenFile.lpstrFile
OpenFile.nMaxFileTitle = OpenFile.nMaxFile
OpenFile.lpstrInitialDir = "F:\Stage Kévin\Bases\"
OpenFile.lpstrTitle = "Choisir le PRC EXPRESS A de M"
OpenFile.flags = 0
lReturn = GetOpenFileName(OpenFile)
If lReturn = 0 Then
MsgBox "Choisir le PRC EXPRESS A de M", vbInformation, "Fichier non trouvé"
Else
LaunchCD = Trim(Left(OpenFile.lpstrFile, InStr(1, OpenFile.lpstrFile, vbNullChar) - 1))
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "PRC EXPRESS A", LaunchCD, True,
End If

End Function

CODE BOUTON :

Private Sub Commande6_Click()

Dim NomTable As String
Dim NomFeuille As String

NomFeuille = ListeTable
NomTable = ListeTable

Me!Résultat = LaunchCD(Me, NomTable, NomFeuille)
Résultat = "PRC EXPRESS A"

End Sub

Tout marche mais il me met un message d'erreur, pas génial pour les utilisateurs.

Auriez vous une solution SVP ?

Edy360


2 réponses

blux Messages postés 27141 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Salut,

Tout marche mais il me met un message d'erreur, pas génial pour les utilisateurs.
Si on savait le libellé du message et la ligne, ça serait génial pour les correcteurs...
0
Edy360 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
Salut,

C'était le message d'erreur 2465 "impossible de trouver le champs résultat etc..;"

Le problème provenait de Me!Résultat

Hier, j'ai essayé de créer une étiquette de contrôle avec le nom résultat dans le formulaire et c'est ok. Je n'avais pas compris que cela renvoyait à une zone de texte dans le formulaire

Merci pour ton aide en tout cas.

J'ai un autre souci :j'ai une requête simple avec un champ DATE:Date() mais quand le résultat de la requête est vide sans (enregistrements) il ne me remplie pas le champ. Il y a t'il un moyen pour qu'il me remplisse le première ligne même sans enregistrement ? (Critères ? SQL avec insertion ligne ?)

Code SQL de la requête :

SELECT Date() AS [DATE], [PRC EXPRESS A].CODEL, [PRC EXPRESS A].NOMDEL, [PRC EXPRESS A].CORBEILLE, [PRC EXPRESS A].GESTIONNAIRE, [PRC EXPRESS A].GROUPE, [PRC EXPRESS A].NO_DOS, [PRC EXPRESS A].NM_PRN, [PRC EXPRESS A].COD_NIR, [PRC EXPRESS A].DOS_REF_IRC, [PRC EXPRESS A].COD_IRC_MAJ, [PRC EXPRESS A].COD_TYPE_DOS, [PRC EXPRESS A].NO_, [PRC EXPRESS A].COD_NIV_DOS, [PRC EXPRESS A].COD_STATUT_DOS, [PRC EXPRESS A].A01, [PRC EXPRESS A].A10, Date()-[A01] AS AGE, IIf([DAT_EFET_DMD_ARRCO]>Date(),1,0) AS Test, [PRC EXPRESS A].DAT_EFET_DMD_ARRCO, *
FROM [PRC EXPRESS A]
WHERE ((([PRC EXPRESS A].COD_IRC_MAJ) Between "A015" And "A01599" Or ([PRC EXPRESS A].COD_IRC_MAJ) Between "C011" And "C01199") AND (([PRC EXPRESS A].COD_NIV_DOS)<>"X") AND (([PRC EXPRESS A].A10) Is Null) AND ((Date()-[A01])>23) AND ((IIf([DAT_EFET_DMD_ARRCO]>Date(),1,0))<>1));


Pourrais tu m'aider ?
0
blux Messages postés 27141 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Pas compris, date() renvoie la date du jour, c'est une colonne résultat de ta requête, donc si ta requête ne rennvoie aucune ligne, cette colonne sera ignorée, c'est un comportement normal.

Je ne saisis pas la finalité du truc...
0
Edy360 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
Je ne sais pas si c'est possible mais effectivement je souhaite que dans le résultat de la requête, il m'insère la date du jour pour pouvoir mieux archiver les résultat.

Je souhaitais utiliser mon champ DATE qui me renvoie la date du jour quand il y a un enregistrement mais en cas de résultat vide (archiver aussi) je souhaiterais qy'apparaisse la date du jour.

- Donc insertion d'un ligne au dessus des champs avec date ?

Voila
0
blux Messages postés 27141 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Pour l'instant, tu n'as qu'une requête de type sélection, que fais-tu de ces données qui te sont renvoyées, où les stockes-tu ?
0
Edy360 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
Donc j'ai ma requête sélection qui a donc le champ DATE en 1ère colonne. Les données sont extraits d'une table PRC EXPRESS A (que je ne peut pas modifier car alimenter par un fichier extérieurs à mon service).

En fait cette requête sélection je la lance par l'intermédiaire d'un bouton dans un formulaire qui m'exporte directement sur Excel le résultat et le nom de la requête mais je souhaiterais aussi avoir la date quelquepart (titre, première ligne ou par défaut toujours dans colonne DATE). Après j'archive excel sur mon ordi.

Je fais un export simple : Voici le code VBA de mon bouton :

Nom de la requête : * LIA 01 INTERLOC 23 J, il n'y a pas de chemin car je souhaite qua le boite de dilaogie s'ouvre (pour les utilisteurs)


Private Sub LIA_01_Click()
On Error GoTo Err_LIA_01_Click

Dim stDocName As String

stDocName = "* LIA01 INTERLOC > 23 J"
DoCmd.OutputTo acOutputQuery, stDocName, acFormatXLS, , True

Exit_LIA_01_Click:
Exit Sub

Err_LIA_01_Click:
MsgBox Err.Description
Resume Exit_LIA_01_Click


Si on peut mettre une date du jour quelquepart ?
0
Edy360 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
Personne ?
0