Bonjour,
Je rencontre un soucis avec une table, au niveau d'un champs (= une colonne) déclaré en type "MEMO" mais qui se limite à 255 caractères.
La procédure suivie est la suivante:
1. Création de la table avec déclaration du champs [Clause Contrat] en type memo
2. Exécution d'une requête pour récupérer la dite-clause via une fonction qui me permet de concaténer des lignes d'une table tierce.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 REQ_SQL_Table_1 = "" REQ_SQL_Table_1 = REQ_SQL_Table_1 & "CREATE Table Table_1 (" REQ_SQL_Table_1 = REQ_SQL_Table_1 & "Contrat Text, " REQ_SQL_Table_1 = REQ_SQL_Table_1 & "[Clause Contrat] Memo);" DoCmd.RunSQL (REQ_SQL_Table_1)
J'ai effectué quelques tests dans la fonction et après affichage de la clause avec une MsgBox, il n'y a pas de troncature.
Par contre, une fois la requête d'insertion executée, le libellé est tronqué (à 255 caractères) et j'avoue que je ne saisie pas pourquoi, d'autant que, dans la table, le champs est toujours "déclaré" en type MEMO.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 REQ_SQL_Contrat_Clauses = "" REQ_SQL_Contrat_Clauses = REQ_SQL_Contrat_Clauses & "INSERT INTO Table_1 " REQ_SQL_Contrat_Clauses = REQ_SQL_Contrat_Clauses & "( Contrat, [Clause Contrat] ) " REQ_SQL_Contrat_Clauses = REQ_SQL_Contrat_Clauses & "SELECT DISTINCT 4801.[Contrat], " REQ_SQL_Contrat_Clauses = REQ_SQL_Contrat_Clauses & "RecupLibClause(4801.[Contrat]) " REQ_SQL_Contrat_Clauses = REQ_SQL_Contrat_Clauses & "FROM 4801;" DoCmd.RunSQL (REQ_SQL_Contrat_Clauses)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Public Function RecupLibClause(Contrat As Long) As String Dim res2 As DAO.Recordset Dim SQL As String 'Selectionne les libellés clauses Spéciales du projet SQL = "SELECT [4801].[LIB-CLAUSE] FROM 4801 WHERE [4801].[Contrat]='" & Contrat & "'" Set res2 = CurrentDb.OpenRecordset(SQL) 'MsgBox RecupLibClause 'Concatene les différents enregistrement si la clause existe 'If RecupLibClause <> "" Then While Not res2.EOF RecupLibClause = RecupLibClause & res2.Fields(0).Value & " " res2.MoveNext Wend Set res2 = Nothing End Function
Partager