WinFuture-Forum.de: VB - Outlook Kontakt importer - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

VB - Outlook Kontakt importer


#1 Mitglied ist offline   Party 

  • Gruppe: aktive Mitglieder
  • Beiträge: 501
  • Beigetreten: 16. Januar 04
  • Reputation: 0

geschrieben 03. November 2010 - 19:16

Hallo liebe Community...

ich musste mich heute ein Problem mit Visual Basic lösen obwohl ich überhaupt keine ahnung davon habe :smokin:

es geht darum, dass man im Outlook eine vcf Datei immer nur einzelln importieren kann bzw danach auf Speichern klicken muss. Ich hab mir jetzt mittels mr.google ein kleines Script zusammen gesucht /geschrieben

falls ihr den code testen wollt müsst ihr unter PROJECT / REFERENCES (zumindest bei mir mit vb 6) folgendes hinzufügen:
Microsoft Outlook 11.0 Object Library
Microsoft Script Runtime
Windows Script Host Object Model

Private Sub Command1_Click()

	
Dim objWSHShell As IWshRuntimeLibrary.IWshShell
Dim objOL As Outlook.Application
Dim colInsp As Outlook.Inspectors
Dim strVCName As String

Dim fso As Scripting.FileSystemObject
Dim fsDir As Scripting.Folder
Dim fsFile As Scripting.File
Dim vCounter As Integer
  
Dim sAns As String
sAns = App.Path


	
Set fso = New Scripting.FileSystemObject
Set fsDir = fso.GetFolder(sAns)

For Each fsFile In fsDir.Files


	strVCName = sAns & "\" & fsFile.Name
	Set objOL = CreateObject("Outlook.Application")
	Set colInsp = objOL.Inspectors
		If colInsp.Count = 0 Then
		Set objWSHShell = CreateObject("WScript.Shell")
		objWSHShell.Run strVCName
		Set colInsp = objOL.Inspectors
	If Err = 0 Then
			Do Until colInsp.Count = 1
				DoEvents
			Loop


SendKeys ("{ENTER}")


SendKeys ("{ENTER}")

			colInsp.Item(1).CurrentItem.Save
			colInsp.Item(1).Close olDiscard
			
			Set colInsp = Nothing
			Set objOL = Nothing
			Set objWSHShell = Nothing
		End If
	End If

Next




End Sub


Meine erste frage ist... wie lass ich das script einfach laufen ohne dass ich auf den Command1 Button klicken muss... so dass es automatisch startet wenn ich die exe aufrufe und sich die exe dann automatisch wieder beendet.

Meine 2te Frage ist einwenig problematischer. wenn ein Kontakt schon vorhanden ist kommt wie im Anhang 1 zuerst eine Warnung dass dieser Kontakt schon vorhanden ist... dies sollte mit OK bzw enter bestätigt werden danach anahang2 kommt noch eine warnung die mit ok bestätigt werden soll. dafür hab ich im Code zurzeit SendKeys ("{ENTER}") verwendet... dies ist aber nicht gerade ideal... habt ihr da eine bessere lösung?

meine 3te Frage ist für euch sicherlich wieder einfacher. falls keine vcf files in dem Ordner vorhanden sind wo sich auch die Application befindet (app.path) dann soll garnichts gemacht werden.

es wäre echt super nett von euch wenn ihr mir da helfen köntet ... da ich echt ein anfänger in vb bin.
vielen lieben dank für eure bemühungen

Angehängte Miniaturbilder

  • Angehängtes Bild: 1.gif
  • Angehängtes Bild: 2.gif

0

Anzeige



#2 Mitglied ist offline   tobias86 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.690
  • Beigetreten: 14. August 06
  • Reputation: 6
  • Geschlecht:Männlich
  • Wohnort:localhost

geschrieben 04. November 2010 - 08:17

Beitrag anzeigenZitat (Party: 03.11.2010, 19:16)

Meine erste frage ist... wie lass ich das script einfach laufen ohne dass ich auf den Command1 Button klicken muss... so dass es automatisch startet wenn ich die exe aufrufe und sich die exe dann automatisch wieder beendet.


Normalweise gibt es eine sogenannte "Load/Startup"-Funktion in der du deinen Code einbauen kannst. Weiß leider gerade nicht wie das genau heißt.

Beitrag anzeigenZitat (Party: 03.11.2010, 19:16)

Meine 2te Frage ist einwenig problematischer. wenn ein Kontakt schon vorhanden ist kommt wie im Anhang 1 zuerst eine Warnung dass dieser Kontakt schon vorhanden ist... dies sollte mit OK bzw enter bestätigt werden danach anahang2 kommt noch eine warnung die mit ok bestätigt werden soll. dafür hab ich im Code zurzeit SendKeys ("{ENTER}") verwendet... dies ist aber nicht gerade ideal... habt ihr da eine bessere lösung?


Ob ein Kontakt vorhanden ist kann man mit einer IF-Abfrage abfangen, danach kannst du festlegen was du machen willst. Ist vielleicht in deinem Fall nicht ganz einfach, da du erst einmal auslesen musst welche Kontakte es schon gibt um, diese dann zu vergleichen :smokin:

Beitrag anzeigenZitat (Party: 03.11.2010, 19:16)

meine 3te Frage ist für euch sicherlich wieder einfacher. falls keine vcf files in dem Ordner vorhanden sind wo sich auch die Application befindet (app.path) dann soll garnichts gemacht werden.


Wieder eine IF-Abfrage, ob Dateien in dem Ordner vorhanden sind. Sollte relativ einfach zu lösen sein.
0

#3 Mitglied ist offline   Party 

  • Gruppe: aktive Mitglieder
  • Beiträge: 501
  • Beigetreten: 16. Januar 04
  • Reputation: 0

geschrieben 04. November 2010 - 11:16

hi danke erstmal für deine antwort

punkt1 hab ich schon rausgefunden. das mach ich einfach mit Form_Load

punkt2 ... ich muss nicht überprüfen ob der Kontakt schon vorhanden ist ... sondern möchte einfach 2 mal OK klicken. wenn das Fenster aufgeht. ich weis aber leider nicht wie ich das ansprechen kann/soll

prunkt3 brauch ich eig. nur eine "End, Exit Sub, Close" oder was auch immer... aber nichts hat geklappt als ich dies versucht hab... das muss ich ja einfach nach der Schleife (vor End Sub) einfügen damit mein ganzen programm beendet wird. aber wie gesagt ich finde kein richtigen befehl damit es klappt... sry für meine blutigen anfänger fragen... vb ist nicht mein gebiet.

vielen dank für die bemühungen
0

#4 Mitglied ist offline   tobias86 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.690
  • Beigetreten: 14. August 06
  • Reputation: 6
  • Geschlecht:Männlich
  • Wohnort:localhost

geschrieben 04. November 2010 - 13:28

Beitrag anzeigenZitat (Party: 04.11.2010, 11:16)

prunkt3 brauch ich eig. nur eine "End, Exit Sub, Close" oder was auch immer... aber nichts hat geklappt als ich dies versucht hab... das muss ich ja einfach nach der Schleife (vor End Sub) einfügen damit mein ganzen programm beendet wird. aber wie gesagt ich finde kein richtigen befehl damit es klappt... sry für meine blutigen anfänger fragen... vb ist nicht mein gebiet.


ja aber du musst dem Programm sagen

if kontaktordner = "" then

tue irgendwas z.b. schließe das Programm

Else

 tue irgendwas z.b. Datensätze einlesen mit der Schleife

End if


sonst würde er entweder bei nur Exit Sub dein Programm beenden wenn er an der Stelle ist oder er würde ohne Datenstäze in der Schleife auf Fehler laufen.
0

#5 Mitglied ist offline   Party 

  • Gruppe: aktive Mitglieder
  • Beiträge: 501
  • Beigetreten: 16. Januar 04
  • Reputation: 0

geschrieben 04. November 2010 - 13:39

naja aber bei der schleife liest er jede datei aus und speichert sie in outlook. und wenn keine dateien mehr vorhanden sind ... dann geht er ja auf das End Sub zu oder?

Ich müsste ja nur dort den Befehl setzen um das Programm zu beenden? oder steh ich da jetzt auf der leitung?

For Each fsFile In fsDir.Files

... Schleife wie oben schon

Next

//PROGRAMM BEENDEN


End Sub

0

#6 Mitglied ist offline   tobias86 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.690
  • Beigetreten: 14. August 06
  • Reputation: 6
  • Geschlecht:Männlich
  • Wohnort:localhost

geschrieben 04. November 2010 - 14:28

Beitrag anzeigenZitat (Party: 04.11.2010, 13:39)

Ich müsste ja nur dort den Befehl setzen um das Programm zu beenden? oder steh ich da jetzt auf der leitung?

For Each fsFile In fsDir.Files

... Schleife wie oben schon

Next

//PROGRAMM BEENDEN


End Sub


Nach Next kommt bei dir End Sub, mit End Sub ist automatisch das Programm beendet.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0