Hot News:

Unser Angebot:

  Foren auf CAD.de
  VBasic / vb.net / vbs / wsh
  acviewpreview

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
Autor Thema:  acviewpreview (2944 mal gelesen)
guido159
Mitglied



Sehen Sie sich das Profil von guido159 an!   Senden Sie eine Private Message an guido159  Schreiben Sie einen Gästebucheintrag für guido159

Beiträge: 33
Registriert: 18.12.2004

ACAD 2005

erstellt am: 05. Feb. 2005 11:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

hab da ein kleines Problemchen.
Will über autocad einen Report von acess ausdrucken, mit folgendem code:
----------------------------------------------------
  Set acApp = New access.Application
  With acApp
      .OpenCurrentDatabase DB_PATH
      .DoCmd.OpenReport "Bericht X", acViewNormal
  End With
  acApp.Quit
  Set acApp = Nothing
---------------------------------------------------

mit acviewnormal wird sofort derjenige Drucker angesprochen, mit dem ich den Report als letztes im Acess direkt gedruckt habe. Nun würde ich aber gern mit acviewpreview die möglichkeit haben mir den Drucker auszuwählen, jedoch passiert dabei gar nichts, weder ein druckfenster oder eine Vorschau öffnet sich.  ich denke mal das ich sicher irgendwas vergessen habe.
Könnte mir hiezu jemand nen Tip geben ?

mfg

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

BloodyMess
Mitglied
Applicationingenieur


Sehen Sie sich das Profil von BloodyMess an!   Senden Sie eine Private Message an BloodyMess  Schreiben Sie einen Gästebucheintrag für BloodyMess

Beiträge: 604
Registriert: 06.06.2002

AutoCAD Map 3D 2005 (SP2 & SP1) / Win XP pro (SP1) & Win 2000 pro (SP4)
AutoCAD Map 2000i / WinNT (SP6)

erstellt am: 05. Feb. 2005 21:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für guido159 10 Unities + Antwort hilfreich

Hallo Guido,

arbeitest Du unter VB oder VBA?
Du postest zwar unter VB, scheinst aber VBA zu meinen!
Um einen Drucker auswählen zu können, bedient man sich in den meisten Fällen des 'Printer'-Objektes. Dieses gibt es allerdings nur in VB, nicht aber in VBA. Unter VBA muss man die API benutzen um einen Drucker wählen zu können. Das suche ich Dir morgen mal raus.

Gruss TP

------------------

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

guido159
Mitglied



Sehen Sie sich das Profil von guido159 an!   Senden Sie eine Private Message an guido159  Schreiben Sie einen Gästebucheintrag für guido159

Beiträge: 33
Registriert: 18.12.2004

ACAD 2005

erstellt am: 05. Feb. 2005 21:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi BloodyMess,

danke für die Antwort.

sorry,  vergaß es zu erwähnen bin unter VBA unterwegs,  dachte nicht das man hier mit API arbeiten muß, war der Meinung das es mit acviewpreview schon erledigt sei. Muß auch gestehn das ich mich mit API gar nicht auskenne.

mfg

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

startrek
Mitglied
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 05. Feb. 2005 22:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für guido159 10 Unities + Antwort hilfreich

VBA kennt kein Printer-Object, sondern nur der 'grosse Bruder' - VB ;-)
Lars hat recht, ohne API is da wohl wenig bis garnix drinne, bin der API' aber auch nich grade Herr & Meister,
hier mal bloss noch ein imho guter Link zum Thema drucken/Analyse unter VBA: http://www.michael-schwimmer.de/vba009.htm

lg Nancy
         

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

BloodyMess
Mitglied
Applicationingenieur


Sehen Sie sich das Profil von BloodyMess an!   Senden Sie eine Private Message an BloodyMess  Schreiben Sie einen Gästebucheintrag für BloodyMess

Beiträge: 604
Registriert: 06.06.2002

AutoCAD Map 3D 2005 (SP2 & SP1) / Win XP pro (SP1) & Win 2000 pro (SP4)
AutoCAD Map 2000i / WinNT (SP6)

erstellt am: 06. Feb. 2005 00:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für guido159 10 Unities + Antwort hilfreich

Hallo Nancy .. Hallo Guido,

@Nancy .. schön Dich mal wieder zu sehen .. Hoffe es ist alles i.O. ..

@Guido .. nachfolgenden Code hab ich mal aus einzelnen Schnipseln zusammengebastelt. Das es nicht das Non Plus Ultra ist, ist mir durchaus beewusst, aber es tut halt seinen Zweck. Musst es noch für Dich anpassen.

Voraussetzung ein UserForm ('frm_Control') mit Combobox ('cbo_Printer')

Nächsten Code in ein Modul kopieren ..

Code:
Option Explicit

'Funktionen aus mehreren einzelnen anweisungen zusammengebastelt und mit hilfe von
'api und foren zum laufen gebracht

Private Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" _
    (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, _
    ByVal lpReturnedString As String, ByVal nSize As Long) As Long

Private Declare Function WriteProfileString Lib "kernel32" Alias "WriteProfileStringA" _
    (ByVal lpszSection As String, ByVal lpszKeyName As String, ByVal lpszString As String) As Long

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
    (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lparam As Any) As Long

Private Function fstrDField(mytext As String, delim As String, GroupNum As Integer) As String

Dim StartPos As Integer
Dim EndPos As Integer
Dim GroupPtr As Integer
Dim ChPtr As Integer

ChPtr = 1

For GroupPtr = 1 To GroupNum - 1
    ChPtr = InStr(1, mytext, delim)
   
    If ChPtr = 0 Then
        fstrDField = ""
        Exit Function
    Else
        ChPtr = ChPtr + 1
    End If
Next GroupPtr

StartPos = ChPtr
EndPos = InStr(StartPos + 1, mytext, delim)

If EndPos = 0 Then
    EndPos = Len(mytext) + 1
End If

fstrDField = Mid(mytext, StartPos, EndPos - StartPos)

End Function

Function SetDefaultPrinter(strPrinterName As String) As Boolean

Dim strDeviceLine As String
Dim strBuffer As String
Dim lngbuf As Long

strBuffer = Space(1024)
lngbuf = GetProfileString("PrinterPorts", strPrinterName, "", strBuffer, Len(strBuffer))

If lngbuf > 0 Then

    strDeviceLine = strPrinterName & "," & fstrDField(strBuffer, Chr(0), 1) & "," & _
                    fstrDField(strBuffer, Chr(0), 2)

    Call WriteProfileString("windows", "Device", strDeviceLine)
    SetDefaultPrinter = True
    Call SendMessage(&HFFFF&, &H1A, 0, ByVal "windows")

Else
    SetDefaultPrinter = False
End If

End Function

Function GetDefaultPrinter() As String

Dim strDefault As String
Dim lngbuf As Long

strDefault = String(255, Chr(0))
lngbuf = GetProfileString("Windows", "Device", "", strDefault, Len(strDefault))

If lngbuf > 0 Then
    GetDefaultPrinter = fstrDField(strDefault, ",", 1)
Else
    GetDefaultPrinter = ""
End If

End Function

Function GetPrinters() As String

Dim strBuffer As String
Dim strOnePtr As String
Dim intPos As Integer
Dim lngChars As Long

strBuffer = Space(2048)
lngChars = GetProfileString("PrinterPorts", vbNullString, "", strBuffer, Len(strBuffer))

If lngChars > 0 Then
    intPos = InStr(strBuffer, Chr(0))
    Do While intPos > 1
        strOnePtr = Left(strBuffer, intPos - 1)
        strBuffer = Mid(strBuffer, intPos + 1)
       
        '!!!Achtung KomboBox!!!
        frm_Control.cbo_Printer.AddItem strOnePtr
       
        GetPrinters = GetPrinters & strOnePtr
        intPos = InStr(strBuffer, Chr(0))
    Loop
Else
    GetPrinters = ""
End If

End Function


Um alle Drucker deines Systems in die Komobox zu laden im Formular bei dem 'UserForm_Initialize' Event

Code:
'hole dir alle drucker in die kombobox
GetPrinters

... kuck Dir die Funktion an, erklärt sich selbst. Habe es halt damals mit der Combobox gemacht.


Das ist jetzt der Teil, den Du an Access anpassen musst. Ich habe damals ein ExcelBlatt gedruckt. Aber der Ablauf bleibt ja der selbe.

Code:
        Dim strDefaultPrinter As String

        ...

        'speichere den jetzigen standarddrucker in der variablen
        strDefaultPrinter = GetDefaultPrinter
        'setze den standarddrucker auf den jetzt gewählten
        SetDefaultPrinter Me.cbo_Printer
        'drucke das excelsheet aus
        ExcelWbk.ActiveSheet.PrintOut
        'setze den standarddrucker wieder zurück
        SetDefaultPrinter strDefaultPrinter


Ich wünsch Dir viel Spass und wenn Du Fragen hast, dann frage.
Schönen Sonntag ... Grüssle TP

------------------

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

StefanBerlitz
Ehrenmitglied V.I.P. h.c.
IT Admin (CAx)



Sehen Sie sich das Profil von StefanBerlitz an!   Senden Sie eine Private Message an StefanBerlitz  Schreiben Sie einen Gästebucheintrag für StefanBerlitz

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 06. Feb. 2005 08:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für guido159 10 Unities + Antwort hilfreich

Hallo zusammen,

um von VBA aus eine Printer-Collection zu bekommen, mit der man arbeiten kann braucht man wie schon erwähnt eine externe DLL. Ein ausführlichen Artikel mit Beispiel dazu gibt es auf http://www.aboutvb.de/vba/artikel/vbaprinterlist.htm

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite
http://solidworks.cad.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

guido159
Mitglied



Sehen Sie sich das Profil von guido159 an!   Senden Sie eine Private Message an guido159  Schreiben Sie einen Gästebucheintrag für guido159

Beiträge: 33
Registriert: 18.12.2004

ACAD 2005

erstellt am: 06. Feb. 2005 11:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi BloodyMess,

danke für die Hilfe,  klappt prima.


mfg

und schönen sonntag

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz