Bonjour,
J'ai besoin de vider le presse papier, or il me dit quand je veux faire un Clipboard.Clear qu'il ne connait pas. Kkun pourait il me donner l'instruction svp.
Par avance mici
Bonjour,
J'ai besoin de vider le presse papier, or il me dit quand je veux faire un Clipboard.Clear qu'il ne connait pas. Kkun pourait il me donner l'instruction svp.
Par avance mici
merci de lire les règles du forum ... et donc de modifier ton sujet ....
Désolé j'ai été un peu rapide
donnes nous ton code vba s'il te plait ...
En faites à partir d'access je génére différents documents word ( je travaille avec deux objet Word), mon prb est que quand à partir d'access je veux fermer mon premier document word, on me dit que le presse papier est remplis, un message me previent alors. Le prb c que mon code access du coup ne peu fermer cette objet word sans clique de l'utilisateur.
En Vb l'instruction est un clipboard.clear, mais sous access 2000 il me dit qu'il ne connait pas (Systéme d'exploitation Win 2000).
J'espére que mon explication, te permettra de mieux comprendre mon prb.
ce lien t'aidera surement :
http://www.carsoftaja.ch/astuces/accesstipsgeneral.htm
mais au fait ... j'espere que tu ne te sers pas du copier coller pour taper du texte dans word ou inserer des images....
car il y a plus simple pour controler un document word depuis access !!!
Fonctions pour gérer le clipboard :
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245 Declare Function OpenClipboard Lib "user32" (ByVal hWnd As Long) As Long Declare Function CloseClipboard Lib "user32" () As Long Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Long) As Long Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long Declare Function EmptyClipboard Lib "user32" () As Long Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags&, ByVal dwBytes As Long) As Long Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As Long Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long) As Long Declare Function GlobalSize Lib "kernel32" (ByVal hMem As Long) As Long Declare Function lstrcpy Lib "kernel32" (ByVal lpString1 As Any, ByVal lpString2 As Any) As Long Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwflags As Long, ByVal dwExtraInfo As Long) Public Const VK_SNAPSHOT = &H2C Type RECT_Type Left As Long Top As Long Right As Long Bottom As Long End Type Declare Function GetActiveWindow Lib "user32" () As Long Declare Function GetDesktopWindow Lib "user32" () As Long Declare Sub GetWindowRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT_Type) Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc _ As Long, ByVal nWidth As Long, _ ByVal nHeight As Long) As Long Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, _ ByVal hObject As Long) As Long Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, _ ByVal X As Long, ByVal Y _ As Long, ByVal nWidth As Long, _ ByVal nHeight As Long, _ ByVal hSrcDC As Long, _ ByVal XSrc As Long, _ ByVal YSrc As Long, _ ByVal dwRop As Long) As Long Declare Function ReleaseDC Lib "user32" (ByVal hWnd As Long, ByVal hdc As Long) As Long Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long Public Const GHND = &H42 Public Const CF_TEXT = 1 Public Const MAXSIZE = 4096 Global Const SRCCOPY = &HCC0020 Global Const CF_BITMAP = 2 'MS KB Artikel Q138910 Function ClipBoard_GetData() Dim hClipMemory As Long Dim lpClipMemory As Long Dim MyString As String Dim RetVal As Long If OpenClipboard(0&) = 0 Then MsgBox "Cannot open Clipboard. Another app. may have it open" Exit Function End If ' Obtain the handle to the global memory ' block that is referencing the text. hClipMemory = GetClipboardData(CF_TEXT) If IsNull(hClipMemory) Then MsgBox "Could not allocate memory" GoTo OutOfHere End If ' Lock Clipboard memory so we can reference ' the actual data string. lpClipMemory = GlobalLock(hClipMemory) If Not IsNull(lpClipMemory) Then MyString = Space$(MAXSIZE) RetVal = lstrcpy(MyString, lpClipMemory) RetVal = GlobalUnlock(hClipMemory) ' Peel off the null terminating character. MyString = Mid(MyString, 1, InStr(1, MyString, Chr$(0), 0) - 1) Else MsgBox "Could not lock memory to copy string from." End If OutOfHere: RetVal = CloseClipboard() ClipBoard_GetData = MyString End Function 'MS KB Artikel Q138909 Function ClipBoard_SetData(MyString As String) Dim hGlobalMemory As Long, lpGlobalMemory As Long Dim hClipMemory As Long, X As Long ' Allocate moveable global memory. '------------------------------------------- hGlobalMemory = GlobalAlloc(GHND, Len(MyString) + 1) ' Lock the block to get a far pointer ' to this memory. lpGlobalMemory = GlobalLock(hGlobalMemory) ' Copy the string to this global memory. lpGlobalMemory = lstrcpy(lpGlobalMemory, MyString) ' Unlock the memory. If GlobalUnlock(hGlobalMemory) <> 0 Then MsgBox "Could not unlock memory location. Copy aborted." GoTo OutOfHere2 End If ' Open the Clipboard to copy data to. If OpenClipboard(0&) = 0 Then MsgBox "Could not open the Clipboard. Copy aborted." Exit Function End If ' Clear the Clipboard. X = EmptyClipboard() ' Copy the data to the Clipboard. hClipMemory = SetClipboardData(CF_TEXT, hGlobalMemory) OutOfHere2: If CloseClipboard() = 0 Then MsgBox "Could not close Clipboard." End If End Function 'MS KB Artikel Q148392 Function ScreenDump() Dim AccessHwnd As Long, DeskHwnd As Long Dim hdc As Long Dim hdcMem As Long Dim Rect As RECT_Type Dim junk As Long Dim fwidth As Long, fheight As Long Dim hBitmap As Long DoCmd.Hourglass True '--------------------------------------------------- ' Get window handle to Windows and Microsoft Access '--------------------------------------------------- DeskHwnd = GetDesktopWindow() AccessHwnd = GetActiveWindow() '--------------------------------------------------- ' Get screen coordinates of Microsoft Access '--------------------------------------------------- Call GetWindowRect(AccessHwnd, Rect) fwidth = Rect.Right - Rect.Left fheight = Rect.Bottom - Rect.Top '--------------------------------------------------- ' Get the device context of Desktop and allocate memory '--------------------------------------------------- hdc = GetDC(DeskHwnd) hdcMem = CreateCompatibleDC(hdc) hBitmap = CreateCompatibleBitmap(hdc, fwidth, fheight) If hBitmap <> 0 Then junk = SelectObject(hdcMem, hBitmap) '--------------------------------------------- ' Copy the Desktop bitmap to memory location ' based on Microsoft Access coordinates. '--------------------------------------------- junk = BitBlt(hdcMem, 0, 0, fwidth, fheight, hdc, Rect.Left, _ Rect.Top, SRCCOPY) '--------------------------------------------- ' Set up the Clipboard and copy bitmap '--------------------------------------------- junk = OpenClipboard(DeskHwnd) junk = EmptyClipboard() junk = SetClipboardData(CF_BITMAP, hBitmap) junk = CloseClipboard() End If '--------------------------------------------- ' Clean up handles '--------------------------------------------- junk = DeleteDC(hdcMem) junk = ReleaseDC(DeskHwnd, hdc) DoCmd.Hourglass False End Function Function PrtScn(Alles As Boolean) ' Alles = True Gesamter Bildschirm ' Alles = False - Aktives Fenster 'Tip aus www.basicworld.com ' 32 Bit 'Die Prozedur keybd_event schafft lässig, was SendKeys nicht kann - beachten Sie 'bitte, daß das SDK die Verwendung für diese Zwecke fälschlicherweise genau 'vertauscht dokumentiert: Übergeben Sie ihr im Parameter bVk den virtuellen 'Tastencode VB_SNAPSHOT für die "PrintScreen"-Taste, so erhalten Sie eine Kopie 'des aktiven Fensters in der Zwischenablage: If Not Alles Then keybd_event VK_SNAPSHOT, 0, 0, 0 'Wünschen Sie, den gesamten Desktop zu kopieren, so setzen Sie den Parameter 'bScan einfach auf 1: Else keybd_event VK_SNAPSHOT, 1, 0, 0 End If End Function '***** Code start ******** 'code courtesy of 'Terry Kreft ' Function ClipBoard_Clear() Call OpenClipboard(0&) Call EmptyClipboard Call CloseClipboard End Function
Merci pour la réponse ça fonctionne trés trés bien.
En faites je génére un premier document word par l'envois des données sur des signets, puis je fais un copier coller sur le deuxiéme document qui aurat tout les documents au sein du même document.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager