Feldeinträge für mehrere Kontakte gleichzeitig

Probleme und Tips in der Anwendung von ACT!

Moderatoren: Ingrid Weigoldt, Schlesselmann, Robert Schellmann

Antworten
Olivio
Beiträge: 12
Registriert: Montag 3. Januar 2005, 17:10

Feldeinträge für mehrere Kontakte gleichzeitig

Beitrag von Olivio »

Hallo,

ich habe das Problem, dass ich um das Suchsystem zu optimieren, eine ganze Menge gleicher Daten in gleiche Felder verschiedener Kontakte eintragen muß.
Das wird sehr zeitaufwendig und ich stelle mir die Frage, ob es nicht eine Möglichkeit in Act oder vielleicht mittels eines AddOns gibt, die die Eingabe beschleinigt.

Für jeden konstkuktiven Beitrag bin ich sehr dankbar.

Grüße Olivio
Olivio
Beiträge: 12
Registriert: Montag 3. Januar 2005, 17:10

Beitrag von Olivio »

Hallo,

da anscheinend keiner weiß wie es geht, hier meine eigene Erkenntnis:
In der Kontaktansicht auf Bearbeiten -> Ersetzen -> gewünschtes Feld anklicken und gewünschten Eintrag vornehmen -> Ersetzen -> übernehmen. Nun wird der Eintrag auf entweder alle Kontakte oder auf die aktuelle Suche übernommen.
Möchte man ein Feld gänzlich leer haben giebt man einfach <<leer>> ein.
Danke. 8)
Ingrid Weigoldt
Beiträge: 3027
Registriert: Donnerstag 24. April 2003, 02:00
Wohnort: Viernheim

Beitrag von Ingrid Weigoldt »

Hallo Olivio,

sorry, daß sich niemand Deines Problems angenommen hatte.
Aber, wie man sieht, Du hast es hervorragend selbst geschafft!

Übrigens: wenn man in jedem Kontakt sofort bei Anlage oder Änderung ausgehend von einem Wert in einem Feld andere Felder befüllen möchte (z.B. PLZ 68519 = Ort Viernheim = Bundesland Hessen) dann gibt es dafür das AddOn AutoData. Natürlich kann man auch selbst Abhängigkeiten abbilden und damit realisieren.
Schöne Grüße aus Viernheim
Ingrid Weigoldt
Olivio
Beiträge: 12
Registriert: Montag 3. Januar 2005, 17:10

Beitrag von Olivio »

Hallo Frau Weigold,
herzlichen Dank für Ihre Nachricht. Dieses AddOn AutoData würde mich interessieren. Habe Sie dafür vielleicht einen Link für nähere Informationen?
Ingrid Weigoldt
Beiträge: 3027
Registriert: Donnerstag 24. April 2003, 02:00
Wohnort: Viernheim

Beitrag von Ingrid Weigoldt »

Hallo Olivio,

finden Sie bei Melville-Schellmann im Download-Bereich als Demo.
Voraussetzung für den Einsatz ist ACCESS!
Schöne Grüße aus Viernheim
Ingrid Weigoldt
awagner
Beiträge: 14
Registriert: Mittwoch 12. Januar 2005, 01:12
Wohnort: Mainz
Kontaktdaten:

Beitrag von awagner »

Hallo Forum,
Olivio hat geschrieben: Möchte man ein Feld gänzlich leer haben gibt man einfach <<leer>> ein.
Danke. 8)
Hey, das ist ja klasse! Das wusste ich nicht - bisher habe ich das Feld überschrieben (Feld kopieren) mit dem Feldinhalt eines Feldes, bei dem ich relativ sicher war (und doch immer die Luft angehalten hab'), dass es leer ist.

Aber anstatt immer nur Sachen zu fragen, habe ich hier endlich mal die Möglichkeit, auch was Konstruktives beizutragen. Ich hab' hier ein vbs-Skript, das - nach gebührender Anpassung - alle gewünschten Felder aus einem Kontakt in alle anderen Kontakte derselben Gruppe übernimmt, sofern eine weitere Bedingung (KDNR identisch) zutrifft. Damit hängt es natürlich etwas von der Umgebung ab, in der wir es einsetzen (sprich: Gruppen als Firmen, mit einem Feld KDNR eindeutig identifizierbar, auch die Kontakte haben dieses Feld KDNR usw.), aber vielleicht hilft es trotzdem ... und es ist ja auch vielleicht nicht allzu schwer anzupassen:

Code: Alles auswählen

' -----------------------------------------------------------------
' DatenAusKontaktInGruppeUndDieAnderenKontakte.vbs ----------------
' -----------------------------------------------------------------

' Aktualisiert die gruppeneinheitlichen Werte für alle der aktuellen
' Gruppe zugehörigen Kontakte (und für die Gruppe selbst), basierend
' auf den Werten des aktuellen Kontakts.

Dim strCID(150)						' WICHTIG: Maximal 150 Kontakte pro Gruppe werden verarbeitet

' Los gehts:

Set objViews = Application.Views
Set objView = objViews.GetActive

If objView.Type = 1 Then			' Wenn in der Kontaktansicht aufgerufen:
     Set objContact = objViews.GetActive
     strStartFromContact = objContact.GetField(1)	' merke UniqueID des aktuellen Kontakts,

     ' 0. Felder einlesen . . . ----------------------------------------------------
     strKDNR = objContact.GetField(1001)		' zuerst natürlich die KDNR.
     strFirma = objContact.GetField(25)
     strLand = objContact.GetField(33)
     strGebiet  = objContact.GetField(1038)    ' eines unserer Felder
     strAdresse_1 = objContact.GetField(27)
     strAdresse_2 = objContact.GetField(28)
     strAdresse_3 = objContact.GetField(29)
     strStadt = objContact.GetField(30)
     strBundesland = objContact.GetField(31)
     strPLZ = objContact.GetField(32)
     strTelefon = objContact.GetField(35)

     ' usw.
     Set objGroups = objViews.Create(3, "MyGroups")	' dann ...
     objGroups.Activate							' ... gehe in die Gruppenansicht
     objGroups.LookupFieldEx 1028, strKDNR, 2		' und erstelle eine Suche der Gruppe(n) mit dieser KDNR
     If objGroups.GetLastError = 108 Then
          MsgBox "Die Suche nach Gruppen mit der KDNR des vorliegenden Kontakts hat keine Ergebnisse geliefert. Bitte überprüfen Sie die KDNR."
     Else
     Do While objGroups.Getfield(1028) <> strKDNR : objGroups.MoveNext : Loop	' Gehe durch die Suche bis zum Exact Match

     strGroupID = objGroups.GetField(1)

     ' Felder in der Gruppe einsetzen -------------------------
     objGroups.SetField  27, strAdresse_1
     objGroups.SetField  28, strAdresse_2
     objGroups.SetField  29, strAdresse_3
     objGroups.SetField  30, strStadt
     objGroups.SetField  31, strBundesland
     objGroups.SetField  32, strPLZ
     objGroups.SetField  33, strLand
     objGroups.SetField  57, strGebiet
     objGroups.SetField  47, strTelefon

     ' usw.

     objGroups.SetActiveTab "Kontakte"		' Dann gehe zu den der Gruppe zugeordneten Kontakten
     Set objGroupsContactList = objGroups.ContactMembers
     objGroupsContactList.Sort 1, 0
     intRows = objGroupsContactList.GetRowCount
     If intRows <> -1 Then				' Wenn dort Kontakte stehen ...
          For i = 0 To 149 : strCID(i) = "" : Next
          objGroupsContactList.MoveFirst
          For i = 0 To intRows - 1
               strCID(i) = objGroupsContactList.GetField(1, i)		' merke Dir alle,
          Next
          Set objContact = objViews.Create(1, "MyContacts")
          objContact.LookupALL
          objContact.Activate				' gehe in die Kontaktansicht
          For i = 0 to intRows - 1			' und mache für jeden dies:
               objContact.GoTo strCID(i)	    ' suche den Kontakt auf und
               If objContact.GetField(1001) = strKDNR Then		' Wenn er die entspr. KDNR hat, setze seine Felder... ---------------
                    objContact.SetField   33, strLand
                    objContact.SetField 1038, strGebiet
                    objContact.SetField   27, strAdresse_1 
                    objContact.SetField   28, strAdresse_2 
                    objContact.SetField   29, strAdresse_3 
                    objContact.SetField   30, strStadt     
                    objContact.SetField   31, strBundesland
                    objContact.SetField   32, strPLZ       
                    objContact.SetField   35, strTelefon
                    ' usw.
                    ' WICHTIG: Der Eintrag des Firmennamens soll zuletzt kommen,
                    ' denn er sortiert uns den aktiven Kontakt u.U. weg.
                   objContact.SetField 25, strFirma
                   objContact.Goto strCID(i)
                End If
          Next			      ' Nächster Kontakt
          objGroups.Activate		' Gehe zurück in die Gruppenansicht
          objGroupsContactList.RefreshGrid			' Aktualisiere die zugeordneten Kontakte
          objGroupscontactList.MoveFirst			' und gehe zum ersten in der Liste
     End If
     objGroups.LookUpPrevious
     objContact.Activate
     objContact.LookUpPrevious
     objContact.Goto strStartFromContact       ' Gehe zurück zum Ausgangspunkt
     End If        ' ein Abbruchs-Endif von oben (das geht bestimmt auch eleganter...)
Else
     MsgBox "Unerwarteter Aufruf des Makros aus einer anderen als der Kontaktansicht. Abbruch"
End If

Set objGroupsContactList = Nothing
Set objContact = Nothing
Set objGroups = Nothing
Set objView = Nothing
Set objViews = Nothing

Wie so ein Makro einzubinden ist, sollte ja klar sein. Ich hab's jetzt natürlich für das Posting zusammengestückelt und nicht erneut ausprobiert - also gut anschauen und verstehen und intensiv testen, bevor es in den Produktionsbetrieb gehen kann. (Ein Texteditor mit Syntaxhervorhebung ist übrigens auch ne feine Sache.)

Ich hoffe, ich hab' nix vergessen...

HTH + Grüße,
Andreas
Antworten