AutoDoc

Zusätzliche Erweiterungen für ACT! wie: SchnellSuche, AutoData, 1An1, CoCo, etc.

Moderatoren: Schlesselmann, Amrou, mtimmermann, Robert Schellmann, Thomas Benn

Antworten
Friedrich
Beiträge: 8
Registriert: Montag 6. Februar 2006, 11:22

AutoDoc

Beitrag von Friedrich »

Anscheinend ist mir die Anleitung zu Autodoc etwas zu hoch (oder ich hab einen schlechten Tag).
Ich möchte eine Excel Liste welche unser Warenwirtschaftssystem erstellt, in den jeweiligen Kunden darstellen. In der Excelliste handelt es sich um alle relevanten Angebote. Übereinstimmend zuwischen Act und Liste ist die Kundennummer.
Im Moment arbeite ich mit der Trial Version um es vorher zu testen.
Der Benutzerdefinierte Befehl wurde angelegt, aber es tut sich nichts.
So sieht die Liste aus:

Belegnummer Pos Bestellnummer Kundennummer Kunde Belegdatum gültig bis Material Bezeichnung KumAuMenge ME Nettopreis Nettowert Währg Status
32039979 30,00 EUR
32039979 10 Anfrage Erweiterung 423308 Max Muster 15.04.2004 99.99.9999 6580000206 Wein 1 ST 10,00 10,00 EUR nicht referiert
32039979 20 Anfrage Erweiterung 423308 Max Muster 15.04.2004 99.99.9999 6580000207 Wurst 1 ST 10,00 10,00 EUR nicht referiert
32039979 30 Anfrage Erweiterung 423308 Max Muster 15.04.2004 99.99.9999 6580000204 Käse 1 ST 10 10 EUR nicht referiert
Robert Schellmann
Beiträge: 1675
Registriert: Samstag 14. April 2001, 02:00
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Robert Schellmann »

Hallo Friedrich,

ich kann Ihnen für Ihre Aufgabe eher das AddOn KundenInfo empfehlen. Bei der Einrichtung (Konfiguration KundenInfo) müssen Sie bei Excel-Tabellen als Datenquelle den OLE-Provider für Jet 4.0 verwenden.

Bild

und unter Verbindung die Excel-Datei

Bild

und unter "Alle" bei "Extended Properties" den Wert:

Code: Alles auswählen

Excel 8.0;HDR=Yes;IMEX=1
Bild

(Quelle s. http://www.connectionstrings.com/ (unter Excel OLE DB)

Bei der Erstellung der SQL-Abfrage kann man folgendes verwenden:

Code: Alles auswählen

Select * From [Tabelle1$] Where [Tabelle1$].[Kundennummer]={!K,50}
Wobei hier das Excel-Blatt den Namen Tabelle1 hat und die Kundennummer im ACT! im Feld mit der Feld-ID 50 steht.

Gruß
Robert Schellmann
Bild MSControl4 - wird Ihre ACT!-Daten zum Rotieren bringen...
R.Hilger
Beiträge: 256
Registriert: Donnerstag 6. Februar 2003, 01:00
Wohnort: Engelsberg

Beitrag von R.Hilger »

Hallo Hr. Schellmann,

ich habe auch eine Excel Datenbank, welche ich mit Kundeninfo eingebunden habe, diese Datenbank enthält alle bei uns registrierten Gerät, welche bei unseren Kunden im Einsatz sind.
Die Datenbank enthält ca. 1500 Datensätze und das Selektionskriterium ist ebenfalls die Kundennr.

Die Verbindung zu Excel hat auch soweit geklappt, nur sucht Kundeninfo scheinbar Endlos nach diesen Daten, liegt es daran, dass es nur eine nicht indizierte Excel-Tabelle ist?
Wäre eine mit Access indizierte Tabelle (wie in der Anleitung zu Kundeninfo beschrieben ) schneller?,
wenn ja, muß ich dazu Access auf meinem Rechner haben :o oder reicht es, diese Datei(en) auf einem anderen Rechner zu erstellen und in ein entsprechendes Verzeichnis zu kopieren?
also wenn die Daten mal indiziert sind, dann gehts so leidlich schnell, nur wenn man dann durch die Kunden blättert, dann wirds langsam und auf die Schaltflächen "erster Datensatz" und "letzter Datensatz" scheint ACT nicht mehr anzusprechen bzw. dauert sehr sehr lange

Darstellung:
die Kundennummer wird jetzt als 123.456,00 angezeigt, wie kann man i.V. mit Excel eine Anzeige von 123.456 oder nur 123456 erreichen?
selbes gilt auch für die PLZ

Danke im Voraus und schöne Feiertage
mit freundlichen Grüßen
R.Hilger

immer noch ACT 6.0.3.994 / Win XP Pro / Winfax Pro 10.0.
Robert Schellmann
Beiträge: 1675
Registriert: Samstag 14. April 2001, 02:00
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Robert Schellmann »

Hallo Herr Hilger,

zur Kundennummer:
Sie können in der Excel-Datei eine Spalte anfügen, die z.B. mit der Verkettungs-Funktion von Excel aus der Spalte Kundennummer (Beispiel Spalte A, Beispielwert 123456, In der ersten Zeile stehen die Spaltennamen) einen neue Zeichenkette erstellt:
Neue Spalte B mit der Bezeichnung "KdNr2" in Zeile 1 und mit der Funktion:

Code: Alles auswählen

=VERKETTEN("D";A2)
in Zeile 2.

So lautet dann der Wert in der neuen Spalte "D123456" (D für Debitor).

In der SQL-Abfrage für die Excel-Tabelle (KundenInfo Konfiguration) greifen Sie dann auf diese neue Spalte zu:

Code: Alles auswählen

Select * From [Tabelle1$] Where [Tabelle1$].[KdNr2]='D'+'{!K,50}'
Nur so können Sie verhindern, dass der JET 4.0-Provider bei der Beurteilung des Datentypes von der Excel-Spalte auf den Zahlentyp kommt. Dies macht er, in dem er sich die Inhalte der ersten (ich glaube) 8 Datensätze (also Excel-Zeilen) anschaut. Dann wird nach einem Mehrheitsprinzip entschieden, ob es sich um Zahlen oder Text handelt. Durch den Trick mit der abgeleitetet neuen Spalte generiert man eine Spalte, wo der Inhalt immer mit einem Buchstaben anfängt. So wird diese Spalte (KdNr2) als Text-Feld interpretiert. In der SQL-Abfrage (Where-Klausel) muss natürlich jetzt mit den einfachen Anführungszeichen gearbeitet werden, da es hier um den Vergleich von Texten und nicht mehr um den von Zahlen geht.

Beim Arbeiten von Excel-Dateien mit dem Jet 4.0 Provider oder auch beim Verknüpfen von Excel-Datein unter Access läuft immer diese Analyse der Datentypen ab. Excel ist halt keine Datenbank sondern eine Tabellenkalkulation. Man kann halt in jede Zelle schreiben was man will.
Dadurch entsteht noch ein Hindernis beim "datenbankmäßigen" SQL-Zugriff auf Exceltabellen.
Wo liegt das Ende einer Excel-Tabelle? Man braucht nur einmal im Excel die Tastenkombinationen STRG+Cursor-Rechts und STRG+Cursor-Unten zu drücken und landet so "ganz unten rechts". Gibt man in diese außerste Zelle ein Leerzeichen ein, so hat man die Datentabelle auf ein Maximum erhöht. Beim Zugriff über den Jet 4 Provider oder Access hat man eine riesige Datentabelle, die durchsucht wird. Es ist also sehr wichtig, dass man das Ende der Excel-Tabelle "sauber" hält. Zur Not kann man alle nicht verwendeten Zeilen bis zum festen Ende (655536) markieren und löschen. Genauso geht man mit den nicht verwendeten Spalten vor. So kann man Sicher sein, dass nicht irgendwo im ungenutztem Bereich ein sinnloser Wert die Datenmenge unnötig erweitert.

In der SQL-Abfrage sollte man natürlich nicht mit dem *-Zeichen arbeiten. Man bekommt so schnell eine Übersicht über alle abfragbaren Spalten und Ihren genauen Namen. Für den endgültigen Einsatz, sollte man aber gezielt die Spalten angeben, deren Daten man anzeigen will.

Code: Alles auswählen

Select [Tabelle1$].[Datum], [Tabelle1$].[Artikel], [Tabelle1$].[Preis] From [Tabelle1$] Where [Tabelle1$].[KdNr2]='D'+'{!K,50}'
Gruß
Robert Schellmann
Bild MSControl4 - wird Ihre ACT!-Daten zum Rotieren bringen...
Robert Schellmann
Beiträge: 1675
Registriert: Samstag 14. April 2001, 02:00
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Robert Schellmann »

Hallo Herr Hilger,

zu Accesss verknüpften Excel-Dateien:

Zum Erstellen der MDB-Datei (Access Datenbank) benötigen Sie Access. Für den Zugriff der Daten übers KundenInfo benötigen Sie kein Accesss auf dem Rechner. Der abfragende Zugriff von KundenInfo erfolgt über den Jet 4.0 OLE-DB Provider auf die Access-Datenbank, der falls er nicht auf dem Rechner vorhanden ist, durch das Setup von KundenInfo installiert wird.

Gruß
Robert Schellmann
Bild MSControl4 - wird Ihre ACT!-Daten zum Rotieren bringen...
R.Hilger
Beiträge: 256
Registriert: Donnerstag 6. Februar 2003, 01:00
Wohnort: Engelsberg

Beitrag von R.Hilger »

Hallo Hr. Schellmann,

danke für die umfangreichen Tipps :)
und um das Problem mit den PLZ zu lösen, demzufolge z.B. alle PLZ auf "D-80935" ändern, oder?

Schönes Wochenende
mit freundlichen Grüßen
R.Hilger

immer noch ACT 6.0.3.994 / Win XP Pro / Winfax Pro 10.0.
R.Hilger
Beiträge: 256
Registriert: Donnerstag 6. Februar 2003, 01:00
Wohnort: Engelsberg

Beitrag von R.Hilger »

Hallo Hr. Schellmann,

noch zwei Fragen:
- kann man Kundeninfo "abschalten" wenn die suche zu lange dauert, und das Blättern massiv verzögert wird?
- wie kann man in EXCEL 2000 die überflüssigen Zellen löschen ??, ich habs leider nicht geschafft,

Danke schon mal
mit freundlichen Grüßen
R.Hilger

immer noch ACT 6.0.3.994 / Win XP Pro / Winfax Pro 10.0.
Robert Schellmann
Beiträge: 1675
Registriert: Samstag 14. April 2001, 02:00
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Robert Schellmann »

Hallo Herrr Hilger,

zur PLZ: Ja, wenn Sie sie in der SQL-Abfrage als Kriterium bei der Where-Klausel verwenden wollen.

zum Blättern: Sie müssten eigentlich in den Kontakten weiter blättern können, wenn KundenInfo anfängt zu suchen. Es läuft in einem eigenen Task und kontrolliert von außen, ob sich im ACT! der Kontakt geändert hat.

zu Excel 2000: Mehr Beschreibung, wie oben kann ich leider nicht zeitlich investieren. Das Markieren von Zeilen bzw. Spalten und das Löschen hat sich bei Excel seit Excel 5 (Windows 3.11) eigentlich nie geändert. Es bleiben natürlich nach dem Löschen immer die maximalen ca. 65000 Zeilen bzw. 230 Spalten, jedoch sind die Inhalte in den Zellen dann alle leer.

Gruß
Robert Schellmann
Bild MSControl4 - wird Ihre ACT!-Daten zum Rotieren bringen...
Antworten