Hejsan! Om du bara skall öppna word eller excel dokument i respektive program är enkelt. Jag har använt denna metod i VBA men den fungerar i VB6 också.Öppna Word- och Excelfiler i eller från VB6
Har försökt en sak ett litet tag; hur öppna en Excelfil eller ett Worddokument från VB? Låt oss säga att när jag trycker på en knapp i min applikation ska det göra att ett specifikt dokument öppnas.
Ska jag ha en ActiveX-kontroll i min applikation och öppna dokumentet där eller ska det på något vis öppnas i själva Word? Har inte sysslat med sånt alls så jag hade gärna tagit emot lite tips på hur man ska gå tillväga. Är det OLE-kontrollen man använder sig av då?
Jag ska kanske tillägga också att dokumentet inte ska gå att redigera, utan vara typ skrivskyddat + att man ska kunna öppna både t.ex. Word- och Excelfiler. Kan man ha det i samma kontroll då?
Sista frågan..., om filen härstammar från en databas (Access), vilken datatyp ska man då ha i databasen?
Tack på förhand!
Ha det // KalleSv: Öppna Word- och Excelfiler i eller från VB6
'Modul:
Public Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As _
String, ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
'Form:
Public Sub Open_AssosiatedFile(sOpenFile As String)
Dim lid As Long
lid = ShellExecute(frmRapport.hwnd, "Open", sOpenFile, "", sOpenFile, 1)
End Sub
Private Sub Command1_Click()
Open_AssosiatedFile App.Path & "\minfil.doc"
Open_AssosiatedFile App.Path & "\minfil.xls" 'osv..
End Sub
'-------------------------------------------------------------
För att låsa filer kanske du skall titta på FSO, sök på FSO i tipps.
Öppna som read only...
Du kan också lägga till Office komponenter i ditt projekt. Projekt meny - Components...
Skala ner frågan lite så blir det enklare att hjälpa dig.
Lycka till!Sv: Öppna Word- och Excelfiler i eller från VB6
Lägg till Reference "Microsoft Word 11.0 Object Library" till ditt projekt. Förutsätter att word finns installerat tror jag.
Private Sub cmdPrintOutWordDoc()
ÖppnaDok "C:\Sökväg\", "Dokument.doc"
End Sub
Sub ÖppnaDok(ByVal Path As String, ByVal Filename As String)
Dim appWord As Word.Application
Set appWord = CreateObject("word.application")
appWord.Documents.Add Path & Filename
appWord.Visible = True
' Skriver ut dokumentet
appWord.ActiveDocument.PrintOut
' Stänger dokumentet
appWord.ActiveDocument.Close
' Avslutar Word
appWord.Quit
Set appWord = Nothing
End Sub
Borde fungera på motsvarande sätt för excel.
Har inte undersökt möjligheten till öppna dokumentet låst för redigering.
Mvh Patric