Jump to content

Jeenne

Members
  • Gesamte Inhalte

    11
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von Jeenne

  1. Nein das ist immer noch ANSI.

    Habe wie gesagt die Textdatei jetzt direkt in dem Query um etwas zu testen (Also SELECT * FROM text.txt WHERE ....). Damit nimmt sich das Script die Datei aus dem Temp Ordner.

     

    Wenn ich jetzt z.B. mal komplett leer mache, sagt er mir nur "Query must have at least one destination field", aber er macht in dem Sinne den Fehler nicht mehr, daher denke ich dass der Fehler hier liegt, oder?

  2. Ich habe das Gefüll es liegt in der Connecation, dass er damit nicht umgehen kann, ist das möglich?

     

      
    ' ADO-Objekte
    Set objConn = CreateObject("ADODB.Connection")
    ' weitere Objekte
    Set objNetwork = CreateObject("WScript.Network")
    Set objShell = CreateObject("Wscript.Shell")
    Set objWMI = GetObject("winmgmts:\\.\root\CIMV2")
    
    objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" & strTemppfad & ";" & _
    "Extended Properties=""text;HDR=YES;FMT=Delimited"""
    

     

    und...

    set objRS = objConn.Execute()
    

  3. Moin,

     

    wie folgt sind die Ergebnisse:

     

    Hier funktioniert es:

    Temppfad ist: C:\DOCUME~1\testuser\LOCALS~1\Temp
    C:\Documents and Settings\testuser\Desktop\Druckerverbindung.vbs(46, 2) Microsof
    t JET Database Engine: No value given for one or more required parameters.
    

     

    Hier funktioniert es nicht:

    Temppfad ist: C:\DOKUME~1\testuser\LOKALE~1\Temp
    

  4. Nicht wundern, ich habe es gerade unter einer Englischer Installation getestet.

    Die aber genau die gleiche Fehlermeldung erzeugt.

     

    Die Select-Ausgabe ist folgende:

     

    SELECT * FROM radE6201.tmp WHERE DruckerAlt = 'Microsoft XPS Document Writer'

    C:\Documents and Settings\testuser\Desktop\Druckerverbindung.vbs(47, 2) Microsoft JET Database Engine: No value given for one or more required parameters.

  5. Hallo zusammen,

     

    ich habe folgendes Problem:

     

    Ich würde gerne auf Client Rechnern alte gegen neue Drucker austauschen, nachdem ich den neuen Printserver online habe.

     

    Auf deutschen Systemen funktioniert es ohne Probleme, aber auf Multilanguage Systemen bringt es leider die Fehlermeldung "Code:80040E10 Error:Für mindestens einen erforderlichen Parameter wurde kein Wert angegeben" und zeigt auf die Zeile mit "set objRS = objConn.Execute("SELECT * FROM " & strTabelle & " WHERE DruckerAlt = '" & strDruckerAlt & "'")". Seht einer an dem Script das Problem?

     

    Script:

    ' Region Description
    '
    ' Name: Druckerverbindung.vbs
    ' Author: Nils Kaczenski
    ' Version: 1.0
    ' Description: Ersetzt Windows-Netzwerkdruckerverbindungen im aktuellen Benutzerprofil
    ' durch andere Verbindungen. Die alten und neuen Verbindungsdaten sind in einer Textdatei
    ' angegeben. Nützlich bei Drucker-Migrationen.
    ' Für die Fachzeitschrift IT-Administrator, 2006
    ' Freie Weitergabe des Skriptcodes erlaubt. Keine Gewähr!
    '
    ' EndRegion
    
    ' Pfad zur Druckerdatei
    strDBPfad = "<Mein Druckerpfad>"
    ' Druckerdatei temporär kopieren, um Sperrkonflikte zu umgehen
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objDBDatei = objFSO.GetFile(strDBPfad)
    strDBDateilokal = objFSO.GetTempName
    strTemppfad = objFSO.GetSpecialFolder(2)
    strDBPfadlokal = objFSO.BuildPath(strTemppfad, strDBDateilokal)
    objDBDatei.Copy strDBPfadlokal
    
    ' Tabelle hier: Name der Textdatei
    strTabelle = strDBDateilokal
    
    ' ADO-Objekte
    Set objConn = CreateObject("ADODB.Connection")
    ' weitere Objekte
    Set objNetwork = CreateObject("WScript.Network")
    Set objShell = CreateObject("Wscript.Shell")
    Set objWMI = GetObject("winmgmts:\\.\root\CIMV2")
    
    objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" & strTemppfad & ";" & _
    "Extended Properties=""text;HDR=YES;FMT=Delimited"""
    strText = ""
    
    ' Druckerverbindungen des Benutzers durchlaufen
    Set colDrucker = objNetwork.EnumPrinterConnections
    ' Im jeweils zweiten Wert steht der Druckername
    For i=0 To colDrucker.Count-1 Step 2
    strDruckerAlt = colDrucker(i + 1)
    ' In Datenbank nach der aktuellen Verbindung suchen
    set objRS = objConn.Execute("SELECT * FROM " & strTabelle & " WHERE DruckerAlt = '" & strDruckerAlt & "'")
    ' Falls Drucker gefunden (objRS nicht leer) ...
    If Not objRS.EOF Then
    	' ... neuen Drucker herausfinden
    	strDruckerNeu = objRS("DruckerNeu")
    	' ... und verbinden
    	DruckerSetzen strDruckerAlt, strDruckerNeu
    End If
    Next
    
    ' Erfolg melden
    If strText <> "" Then
    objShell.Popup strText, 10, "Drucker wurden erfolgreich umbenannt."
    End If
    
    ' Lokale Textdatei schließen und löschen
    objRS.Close
    Set objDBDateilokal = objFSO.GetFile(strDBPfadlokal)
    objDBDateilokal.Delete
    
    Sub DruckerSetzen(strDruckerAlt, strDruckerNeu)
    ' ist der alte Drucker der Standarddrucker?
    strDruckerWQL = Replace(strDruckerAlt, "\", "\\")
    strWQL = "SELECT Default FROM Win32_Printer " _
    	& "WHERE Name = '" & strDruckerWQL & "'"
    Set colPrinters = objWMI.ExecQuery(strWQL)
    If colPrinters.Count > 0 Then
    	For Each objPrinter In colPrinters
    		If objPrinter.Default = vbTrue Then
    			flgDefault = True
    		Else	
    			flgDefault = False
    		End If
    	Next
    End If
    ' alte Verbindung entfernen
    objNetwork.RemovePrinterConnection strDruckerAlt, True, True
    strText = strText & strDruckerAlt & " entfernt." & VbCrLf
    ' neue Verbindung hinzufügen
    objNetwork.AddWindowsPrinterConnection strDruckerNeu
    strText = strText & strDruckerNeu & " hinzugefügt." & VbCrLf
    If flgDefault Then
    	objNetwork.SetDefaultPrinter(strDruckerNeu)
    	strText = strText & strDruckerNeu & " ist Standarddrucker." & VbCrLf
    End If
    End Sub
    

     

     

    Vergleichsdatei:

    DruckerAlt;DruckerNeu
    "\\AlterDruckserver\AlterName";"\\NeuerDruckserver\NeuerName"
    

×
×
  • Neu erstellen...