Bonjour, je me demandais si il était possible d'enregistrer du Texte RTF (Mise en forme) dans Access. En tant que Stream où autres ?
Merci d'avance
Bonjour, je me demandais si il était possible d'enregistrer du Texte RTF (Mise en forme) dans Access. En tant que Stream où autres ?
Merci d'avance
Oui sans aucun problème, il faut que le type du champ soit mémo.
Pour l'enregistrement:
Pour l'affectation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part Table1.fieldbyname('note').assign(RichEdit1.Lines);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if not Table1.fieldbyname('note').isnull then RichEdit1.text := Table1.fieldbyname('note').AsString;
Et pour le type de champ, je le mets en tant que Memo ou OLE. Si j'ai bien compris, OLE prends tout type de données ?
Bein, d'après mes tests, seul le texte sans la mise en forme est pris en compteEnvoyé par delphichem
Envoyé par portu
![]()
![]()
J'ai réalisé une application et j'ai utilisé ole pour stocker le contenu d'un RichEdit, d'où j'ai extrais le bout du code que je t'ai précédemment posté, je ne sais pas pourquoi j'ai affirmé que tu devais utiliser le type memo. Enfin, espérons que je n’arriverais pas à confondre integer et string la prochaine.
Envoyé par delphichem
Ha je vais regarder de ce coté là alors.
merci beacoup![]()
Fonction toujours pas !
Quand je fais ca, il me donne le premier caractère non formaté.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 RichEdit1.text := Table1.fieldbyname('note').AsString;
Je viens de testé, cela fonctionne tres bien chez moi.
Pour information j'utilise Delphi 7 Access 2003
Et avec un dbRichedit directement lié au champs, ca fonctionne pas ?
Modérateur Delphi
Le guide du bon forumeur :
- Les règles du forum tu liras
- La FAQ et les tutoriels tu consulteras
- La fonction Recherche tu utiliseras
- Google tu vénèreras
__________
Rayek World : Youtube Facebook
Moi aussi !Envoyé par delphichem
Mais je ne travaille pas directement sur la table (Par TADOCommand et TADOQuery. La problème viendrait de là ?
Je n'aime pas trop de jouer avec les DBControlEnvoyé par Malatar
![]()
moi je n'aime pas dutout et je n'utilise jamais les dbcontrol.Envoyé par portu
Moi j'utilise un AdoTable, essaies pour voir.
peut importe que vous aimiez ou pas ce type de composant, ca permettra de tester si le champ a bien enregistrer les données dans le champs. Car vous vous cassez la tête depuis un bon moment alors que le champs n'est peut être pas correctement écrit.
Modérateur Delphi
Le guide du bon forumeur :
- Les règles du forum tu liras
- La FAQ et les tutoriels tu consulteras
- La fonction Recherche tu utiliseras
- Google tu vénèreras
__________
Rayek World : Youtube Facebook
En ce qui me concerne tout fonctionne trés bien, les données sont correctement écrit.
Mmmm c'est vrai çaEnvoyé par Malatar
.
Mais je me pose quand même des questions sur les enregistrements de formats binaires.
Comment faire pour, par exemple, enregistrer et lire (Dans Access) un flux mémoire quelconque (Images, fichiers, Tableaux Record, etc...) venant d'un type TStream ?
Je pense qu'il faut voir de ce coté là !
Je pense que la propriété GetData (D'après l'aide Delphi fera l'affaire).
Que se soit des données Texte formaté, fichier, image, etc... , on devrait pouvoir passer par là.
A tester, je vous tiens toujours au courant.
Merci
Voici un exemple que je viens de créer:
.pas
et son .Dfm:
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, ADODB, ExtCtrls, DBCtrls, StdCtrls, ComCtrls; type TForm1 = class(TForm) RichEdit1: TRichEdit; Save: TButton; DBNavigator1: TDBNavigator; Table1: TADOTable; DataSource1: TDataSource; procedure SaveClick(Sender: TObject); procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn); private { Déclarations privées } public { Déclarations publiques } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.SaveClick(Sender: TObject); begin with Table1 do begin Insert; FieldByName('Note').Assign(RichEdit1.Lines); Post; end; end; procedure TForm1.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn); begin RichEdit1.Text := Table1.FieldByName('Note').AsString; end; end.
La base de donnée est créee "db1.mdb" dans l'emplacement suivant D:\Dev\Help, elle contient les champs suivants:
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 object Form1: TForm1 Left = 193 Top = 114 BorderStyle = bsDialog Caption = 'Form1' ClientHeight = 324 ClientWidth = 496 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Shell Dlg 2' Font.Style = [] OldCreateOrder = False PixelsPerInch = 96 TextHeight = 13 object RichEdit1: TRichEdit Left = 8 Top = 8 Width = 481 Height = 273 TabOrder = 0 end object Save: TButton Left = 8 Top = 288 Width = 75 Height = 25 Caption = 'Enregistrer' TabOrder = 1 OnClick = SaveClick end object DBNavigator1: TDBNavigator Left = 264 Top = 288 Width = 224 Height = 25 DataSource = DataSource1 VisibleButtons = [nbFirst, nbPrior, nbNext, nbLast] TabOrder = 2 OnClick = DBNavigator1Click end object Table1: TADOTable Active = True ConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Dev\Help\bd1.mdb' + ';Persist Security Info=False' CursorType = ctStatic TableName = 'Table1' Left = 168 Top = 288 end object DataSource1: TDataSource DataSet = Table1 Left = 216 Top = 288 end end
Id NuméroAuto clé
Note Objet Ole
J'ai copié un petit text de word formaté avec changement de couleur, de style, de font et de taille.
J'ai ensuite collé dans RichEdit1, puis j'ai cliquer sur enregistrer.
J'ai fais quelques petit changement et appuyer encore sur Enregistrer.
j'ai quitté l'application, puis j'ai relancé en cliquant sur le DBNavigator, j'ai remarqué que tout fonctionne correctement.
Partager