tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
13
ZUGRIFFE
1106
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    hausmeister079 hausmeister079 ist offline Mitglied Silber
    Registriert seit
    May 2008
    Ort
    Sydney, Australien
    Beiträge
    87
    Hallo zusammen,

    ich will Daten aus ein Excel Spreadsheet in eine Textbox einlesen. Dies funktioniert auch alles Wunderbar.
    Nun wenn ich aber den kompletten Ordner auf einen anderen Computer kopiere funktioniert dies nicht mehr.
    Wie kann ich meinen Code so umändern, dass er jedesmal die Datei findet?

    hier m ein Code:
    PHP-Code:
    Dim oexcel As Object CreateObject("Excel.application")
            
    Dim obook As Object oexcel.workbooks.open("C:\Users\Home\Desktop\Product\User Details.xls")
            
    Dim osheet As Object obook.worksheets(1)
            
    Dim n As Integer 1
            Dim testdata 
    As String
            obook
    .worksheets(1).unprotect()
            
    testdata osheet.Range("B2").Value 'Name of employee
            ComboBox4.Items.Add(testdata) 
    ich habe ausserdem noch ein Button in meiner Form1 integriert. Wenn ich auch diesen Button klicke öffnet dies die
    entsprechende Excel Datei, welches unabhängig ist ob ich den kompletten Ordner auf einen anderen PC kopiere.
    Ich benutze dafür den Code

    Process.start("Product\User Details.xls")

    Wie kann ich den Code oben ebenfals ändern, sodass der PC die Datei findet in ("Product\User Details.xls")

    Für jeden Tip wäre ich Dankbar.
     

  2. #2
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Hi

    Du verwendest beim Auslesen der Datei einen absoluten Pfad, beim Öffnen einen Relativen.
    Beim relativen Pfad wird ausgehend vom Ausführungsverzeichnis der Pfad zusammengebaut..
    Du solltest also beim Auslesen der Datei auch einen relativen Pfad verwenden
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  3. #3
    hausmeister079 hausmeister079 ist offline Mitglied Silber
    Registriert seit
    May 2008
    Ort
    Sydney, Australien
    Beiträge
    87
    Hallo,

    ja nur habe ich keinen Plan wie ich das mache. Kannst du mir einen besseren Denkanstoss geben?
     

  4. #4
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Hi


    Absoluter Pfad: C:\Users\Home\Desktop\Product\User Details.xls (Pfad vom Device an)
    Relativer Pfad: \Product\User Details.xls (Pfad relative vom Aufruf an)

    Du musst einen relativen Pfad verwenden!
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  5. #5
    hausmeister079 hausmeister079 ist offline Mitglied Silber
    Registriert seit
    May 2008
    Ort
    Sydney, Australien
    Beiträge
    87
    Hallo Nico,

    ich glaube ich habe mich nicht deutlich ausgedrückt. Das mit dem relativen Pfad war mir klar, dass ist auch was ich erzielen möchte.
    Denoch habe ich nicht bisher es geschafft bzw. wie ich dies mache, da ich ja Excel application aufrufen und von dort aus will er den Pfad haben
    und kann mit einem relativen Pfad nichts anfangen.
     

  6. #6
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Aso

    Dann bau den Pfad doch mit Path.Combine() zusammen

    Den Pfad deiner Anwendung kriegst du über Assembly.GetExecutingAssembly().Location. Den Dateinamen musst du dann abschneiden und über oben genannte Funktion die Neue Datei anhängen. (sollte auch mit Replace() gehen)
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  7. #7
    hausmeister079 hausmeister079 ist offline Mitglied Silber
    Registriert seit
    May 2008
    Ort
    Sydney, Australien
    Beiträge
    87
    Ok, vielen Dank. Ich habe es bisher nicht geschafft das es funktioniert aber werde es weiter versuchen.
    Werde mich nochmal melden wenn ich gar nicht weiter komme.
     

  8. #8
    hausmeister079 hausmeister079 ist offline Mitglied Silber
    Registriert seit
    May 2008
    Ort
    Sydney, Australien
    Beiträge
    87
    Hallo Nico,

    ich bin am ende angekommen und habe momentan keine andere Idee wie ich dies lösen könnte.
    Ich habe folgenden Code ausprobiert jedoch funkt der auch nicht. Brauche einen neuen Tip von
    einem Profi, bin nur ein Amateur der versucht seinen Job ein wenig leichter zu machen...

    PHP-Code:
    Dim pfad As String
            pfad 
    Application.StartupPath
            pfad 
    Mid(pfad1InStr(pfad"common\User Details.xls"))
            
    Dim oexcel As Object CreateObject("Excel.application")
            
    Dim obook As Object oexcel.workbooks.open(pfad)
            
    Dim osheet As Object obook.worksheets(1)
            
    'Dim n As Integer = 1
            Dim testdata As String
            obook.worksheets(1).unprotect()
            testdata = osheet.Range("B2").Value '
    Name of employee
            ComboBox4
    .Items.Add(testdata
     

  9. #9
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Hi

    Wieso nutzt du nicht die Funktionen, die ich dir genannt hab?!
    Du sollte den Pfad mit Path.Combine zusammebauen! Das machst du nicht!

    Setz an die Stelle im Code einen Breakpoint und schau dir auch mal an, was in den diversen Propertys steht!

    Nochmal das vorgehen:
    - Pfad abfragen, in dem die Exe läuft
    - Path.Combine den neuen Pfad für deine Exceldatei zusammensetzen
    - diesen Pfad an Excel übergeben.
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  10. #10
    hausmeister079 hausmeister079 ist offline Mitglied Silber
    Registriert seit
    May 2008
    Ort
    Sydney, Australien
    Beiträge
    87
    Hallo Nico,

    ja habe die Funktion nicht benutzt. Melde mich wieder...
     

  11. #11
    hausmeister079 hausmeister079 ist offline Mitglied Silber
    Registriert seit
    May 2008
    Ort
    Sydney, Australien
    Beiträge
    87
    Hallo Nico,

    die Funktion Combine.path hat proma funktioniert. Vielen Dank.
    Jetzt aber zum naechsten Problem. Ich habe mein Programm auf dem Desktop in einen Ordener "3D" erstellt.
    Nun erstelle ich in diesem 3D ordner einen neuen Ordner namens "common". In diesen Ordner common
    kopiere ich mein Excel Datei rein. Mein Programm greift auf diese Excel datei zu, welche momentan auf dem Desktop sitzt.

    Hier der Code:
    Dim oexcel As Object = CreateObject("Excel.application")
    Dim obook As Object = oexcel.workbooks.open("c:\desktop\3D Register.xls")
    Dim osheet As Object = obook.worksheets(1)

    Nun wuerde ich aber gerne es so machen, das mein programm nicht auf den Absoluten Pfad greift sondern auf meine relativen Pfad,
    welcher ("common\3D Register.xls") ist. Jedoch kann mein Programm diese Datei nicht finden. Ich denke mal, da ich mit CreateObject arbeite und daher nicht mehr auf meine relativen pfad zurueck greifen kann.

    Hast du eine Idee wie ich das mache?
     

  12. #12
    noFaiTh noFaiTh ist offline Rookie
    Registriert seit
    Nov 2007
    Beiträge
    8
    Entschuldige, dass ich dein Problem nicht ganz verstehe, aber ich hoffe Folgendes hilft dir weiter:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
            Dim sPfad As String = Application.StartupPath & "\common\3D Register.xls"
            Dim sSheet As String = "Tabelle1"
            Dim oExcel As Object = CreateObject("Excel.application")
            Dim oBook As Object = oExcel.workbooks.open(sPfad)
            Dim oSheet As Object = oBook.worksheets(sSheet)
     
            oExcel.Worksheets(sSheet).Select()
     
            MessageBox.Show(oSheet.range("A1").value.ToString)
     

  13. #13
    hausmeister079 hausmeister079 ist offline Mitglied Silber
    Registriert seit
    May 2008
    Ort
    Sydney, Australien
    Beiträge
    87
    Hi NoFaiTh,

    Perfect, das ist genau was ich versucht habe zu erzielen. Vielen vielen Dank.
     

  14. #14
    noFaiTh noFaiTh ist offline Rookie
    Registriert seit
    Nov 2007
    Beiträge
    8
    Freut mich, wenn ich helfen konnte.

    Gruß noFaith
     

Ähnliche Themen

  1. Datei kann nicht gefunden werden
    Von Sylvie10 im Forum C/C++
    Antworten: 5
    Letzter Beitrag: 01.07.10, 10:53
  2. Die Webseite kann nicht gefunden werden
    Von Meier22 im Forum Netzwerke
    Antworten: 34
    Letzter Beitrag: 15.09.08, 19:23
  3. Resource kann nicht gefunden werden
    Von engelmarkus im Forum .NET WPF & Silverlight
    Antworten: 3
    Letzter Beitrag: 28.06.08, 10:03
  4. font kann nicht gefunden werden?
    Von freakcx im Forum PHP
    Antworten: 16
    Letzter Beitrag: 31.07.06, 21:57
  5. netzwerk pfad kontte nicht gefunden werden
    Von mashine-obf im Forum Microsoft Windows
    Antworten: 6
    Letzter Beitrag: 18.10.05, 17:45