A Microsoft Office (Excel, Word) forum. OfficeFrustration

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

Go Back   Home » OfficeFrustration forum » Microsoft Access » General Discussion
Site Map Home Register Authors List Search Today's Posts Mark Forums Read  

Rich Text Spell Check



 
 
Thread Tools Display Modes
  #1  
Old July 27th, 2004, 01:03 AM
Stephen Lebans
external usenet poster
 
Posts: n/a
Default Rich Text Spell Check

With a quick glance at your code I would say that you have to use the
value returned by your call to RegisterClipboardFormat as the param for
your GetClipboardData call. There's code on my site showing you how to
Copy/Paste RTF encoded text.

You might consider another approach that would not require any API
calls.
1) Setfocus to the RTF control on the Access form
2) Use the Selxx props to select the desired RTF data
3) Invoke the COPY method of the RTF control
4) SetFocus to your WOrd app
5) Invoke the Paste method of the Word Doc
6) Invoke the Word Spell Checker
7) Select all of the Documents Text
8) Invoke the Word Doc's Copy method
9) Setfocus back to the Access application
10) Setfocus back to Rich Text Control on your form
11) Invoke the Paste method the Rich Text control

--

HTH
Stephen Lebans
http://www.lebans.com
Access Code, Tips and Tricks
Please respond only to the newsgroups so everyone can benefit.


"PC User" wrote in message
om...
Please help.

I found code to spell check rich text by using the MS Word spell
checker; however, it does not return the resulting text as rich text,
only as plain text. Can someone help me code this so it returns the
text as rich text. I placed this code in a module named
"basRTF2WordSpellCheck" My prototype DB is located at:
http://www.dbforums.com/showthread.p...30#post3674830

Code:

================================================== =====================
Option Compare Database

'Spell Check using Richtextbox to Word then back Method
Private Declare Function OpenClipboard Lib "User32" (ByVal hwnd As
Long) As Long
Private Declare Function RegisterClipboardFormat Lib "User32" Alias _
"RegisterClipboardFormatA" (ByVal lpString As String) As Long
Private Declare Function EmptyClipboard Lib "User32" () As Long
Private Declare Function CloseClipboard Lib "User32" () As Long
Private Declare Function SetClipboardData Lib "User32" ( _
ByVal wformat As Long, ByVal hMem As Long) As Long
Private Declare Function GetClipboardData Lib "User32" (ByVal wformat
As _
Long) As Long
Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wflags As
Long, _
ByVal dwbytes As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (
_
ByVal destination As Long, source As Any, ByVal length As Long)
Private Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As
Long) As Long
Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As
Long) As Long
Private Declare Function GlobalFree Lib "kernel32" ( _
ByVal hMem As Long) As Long
Private Declare Function lstrcpy Lib "kernel32" (ByVal lstring1 As
Any, _
ByVal lstring2 As Any) As Long

Private Const GHND = &O42
Private Const CF_TEXT = 1
'Private Const CF_RTFTEXT = &HFFFFBF01
Private Const MAXSIZE = 4096
Private Const GMEM_DDESHARE = &H2000
Private Const GMEM_MOVEABLE = &H2


'================================================= ======================
'Spell Check using Richtextbox to Word then back Method
'To use this function, place "=SpellCheck()" in the
'OnClick event for a command button on your form.

'================================================= ======================
Public Function SpellCheck()

On Error GoTo SmartFormError

Dim sRTF As String
sRTF = Forms![frmRTFEditor]![RichText]
Dim Wrtf As String
Dim lSuccess As Long
Dim lRtf As Long
Dim hGlobal As Long
Dim lpString As Long
Dim lOrgTop As Long
lSuccess = OpenClipboard(Forms![frmRTFEditor]![RichText].hwnd)
lRtf = RegisterClipboardFormat("Rich Text Format")
lSuccess = EmptyClipboard
hGlobal = GlobalAlloc(GMEM_MOVEABLE Or GMEM_DDESHARE, Len(sRTF))
lpString = GlobalLock(hGlobal)
CopyMemory lpString, ByVal sRTF, Len(sRTF)
GlobalUnlock hGlobal
SetClipboardData lRtf, hGlobal
CloseClipboard
GlobalFree hGlobal
Dim oWord As Object
Dim oDoc As Object
Set oWord = CreateObject("Word.Application")
Set oDoc = oWord.Documents.Add
oWord.Visible = True
lOrgTop = oWord.Top
oWord.WindowState = 0
oWord.Top = -3000
oWord.Selection.Paste
oDoc.Activate
oDoc.CheckSpelling

oWord.Selection.WholeStory
oWord.Selection.Copy

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"
GoTo OutofHere
End If
hClipMemory = GetClipboardData(CF_TEXT)
'hClipMemory = GetClipboardData(CF_RTFTEXT)
If IsNull(hClipMemory) Then
MsgBox "Could not allocate memory"
GoTo OutofHere
End If
lpClipMemory = GlobalLock(hClipMemory)

If Not IsNull(lpClipMemory) Then
mystring = Space$(MAXSIZE)
Retval = lstrcpy(mystring, lpClipMemory)
Retval = GlobalUnlock(hClipMemory)
mystring = Mid(mystring, 1, InStr(1, mystring, Chr$(0), 0) - 1)
Else
MsgBox "could not look to copy string from."
End If

OutofHe
Retval = CloseClipboard()
Forms![frmRTFEditor]![RichText] = mystring
With oWord
.ActiveDocument.Close savechanges:=False
.Quit
End With

Exit_SmartFormError:
Exit Function

SmartFormError:

If Err = 2046 Or Err = 2501 Then
Resume Next
ElseIf Err = 440 Then
MsgBox "Error In Spell Check Function."
Resume Exit_SmartFormError
Else
MsgBox Err.Description
Resume Exit_SmartFormError
End If

End Function

================================================== =====================

 




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Rich text in memo field Rob Rutherford Using Forms 3 July 28th, 2004 10:22 PM
check box makes text box visible MikeP Using Forms 6 July 16th, 2004 06:08 PM
Annoying spell check !!!!! Gregory Gousak General Discussion 5 June 6th, 2004 11:07 AM
Spell checking Text Dawn General Discussion 1 May 31st, 2004 04:56 AM
using spell check on a protected sheet Scott Worksheet Functions 0 September 17th, 2003 06:19 PM


All times are GMT +1. The time now is 05:43 PM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 OfficeFrustration.
The comments are property of their posters.