Dieser Beitrag ist eigentlich ne Konsequenz aus meiner Anfrage "Access2003 Begrenzung Formularfelder erhöhen/umgehen?". (Hinweis vll. an die Admins: Das Thema könnt geschlossen werden).
Ich hab nun durch Tipps hier (THX Neanderix) das Formular dahin gehend geändert, dass ich statt einer Unzahl einzelner Controls ein Spreadsheet Object ins Formular eingesetzt habe.
Das Problem, das ich nun habe, ist, dass ich es nicht schaffe, die einzelnen Zellen des Spreadsheets zur Laufzeit zu formatieren (i. e. Hintergrundfarbe). Sowohl die üblichen Access- als auch Excel-Befehle funktionieren nicht. Hab nun noch den Tipp bekommen, dass das wahrscheinlich nur möglich sei, wenn ich das Object per LateBinding einbinde... Hmmm, grundsätzlich und theoretisch ist mir LB schon bekannt, nur weiß ich nicht, was ich in diesem Falle machen müsste.
Hat jemand nen Tipp für mich, was ich da machen müsste? Momentan sieht das Formular halt so aus, dass ich bei der Formularentwicklung ein Spreadsheet Object eingebaut habe. Muss ich das ändern und das Spread erst zur Laufzeit einbauen, oder wie geht's?
Vielen Dank für Tipps
Joe
Office - Word, Excel und Co. 9.753 Themen, 41.597 Beiträge
Hi doc,
Hab nun noch den Tipp bekommen, dass das wahrscheinlich nur möglich sei, wenn ich das Object per LateBinding einbinde... Hmmm, grundsätzlich und theoretisch ist mir LB schon bekannt, nur weiß ich nicht, was ich in diesem Falle machen müsste.
Was du machen musst, steht in der Beispielanwendung aus dem Dokument und zwar in dem code zweite Seite unten. Schaus dir an, da werden Objekt-Variablen deklariert, einer ein Objekt vom Typ "Excel.Application" zugewiesen und diese dann instanziiert.
Im Grunde kannst du den kompletten Header dieses Teils der Beispielanwendung übernehmen, du musst lediglich die Variablen-, Formular- und Feldnamen an deine Applikation anpassen.
Es kann zusätzlich nicht schaden, einen Verweis auf die Excel-Library zu setzen; in AC03 geht das im VBA-Editor (ALT+F11) und dann unter "Extras-Verweise" - AC07 kenne ich nicht.
Volker
Hi,
Danke - sag mal, bist Du eigentlich hier der Einzige, der auch mal Antworten geben kann oder gibt... smile.
Nur noch mal für Dummies (weil ich mich mit LB wirklich überhaupt nicht auskenne): am grundsätzlichen Layout des Formulars ist Nichts zu ändern, also das Excel Object bleibt im Layout drin? Oder wird das dadurch erst zur Laufzeit angelegt und muss im Entwurfsmodus raus? Sorry für so viel Blödheit, aber in dem Bereich bin ich wirklich doof.
THX
Du legst das Steuerelement zur Designtime in das Formular - punkt.
"Late binding" bezieht sich nur darauf, wann das Steuerelement explizit zu einem "Mini-Excel" wird, weil Access Kontakt zur Excel-Library bekommt
Ansonsten werde ich mal versuchen, dir weiter zu helfen - morgen. heute bin ich einfach nur müde ;)
Danke - sag mal, bist Du eigentlich hier der Einzige, der auch mal Antworten geben kann oder gibt... smile.
Was Access betrifft, sind hier bei Nickles.de tatsächlich nicht allzuviele Experten versammelt.
Daher bin ich selber bei www.office-loesung.de unterwegs und aktiv (aber nicht unter meinem hiesigen Nick), sowie in den Newsgroups microsoft.public.de.access und de.comp.datenbanken.ms-access
Volker
Hi doc,
ich hab mal heute ein wenig mit Tante Google geredet.
Das beste, was ich finden konnte ist ein Artikel aus dem MSDN - leider in englisch:
http://msdn.microsoft.com/en-us/library/aa141361(office.10).aspx
Dieser und die drei Unterkapitel, ganz besonders
Working with the Spreadsheet Component's Object Model
sollte deine Fragen beantworten helfen.
Fuchs dich da mal durch.
Volker
HI Volker,
Danke erst mal; hab mich da mal durchgefressen. Nur leider finde ich da auch keinen Verweis darauf, wie ich die Zellen formatieren kann.
Das Füllen mit Werten (auch in Abhängigkeit von der DB oder aus Recordsets) ist kein Problem, das kriege ich problemlos über die Eigenschaft "value" hin.
Werd mal weiter suchen; THX noch mal
... und es war so easy
Me!sp01.Cells(intx, inty).Interior.Color = RGB(0, 255, 0)
Das Sp-Ctl wollte einfach die Angabe "Interior".
Werde heute abend noch mal empirisch versuchen, welche Eigenschaften (vll. border etc.) es noch gibt und die dann mal posten. Mutmaßlich gibt es ja wahrscheinlich noch Dinge wie "pattern" etc.
THX an Alle, bes. Volker
sieht tatsächlich aus, als müsste man hier nach Triel & Error verfahren - selbst im netz findet man wenig brauchbares.
Volker
Tjou, hab im Netz auch nur an mehreren Stellen die lapidare Angabe gefunden, dass weder die Standardsyntax von Excel noch die von Access funzt.
Na ja, so hält MS das Leben des Programmers halt spannend....
Gruß
Joe
Hi nochmal,
ich hab nun das ganze Netz durchsucht und auch in den MS-Newsgroups (sowohl die deutschen als auch die englischen) gefragt ... es gab keine Reaktionen ausser dem Hinweis, besser Excel per Office-Automation anzusprechen.
Volker
Hi,
also ich muss sagen: so wie ich es momentan habe, funzt es prima.
Und daneben: MS hält einen fitt. Wenn ich die Office Excel 11 Library einbinde, compiliere und Access neu starte, dann finde ich in der Hilfe auch was. Vorher nicht und allerdings nur dann, wenn ich den (natürlich richtigen) Befehl bzw. Eigenschaften einfach auf gut Glück in den Code einbaue und dann F1. Dann kommt plötzlich ein Hilfetext, von dem ich auch mit einigem Glück wieder weitere Verweise finde.... Versuche ich über die Suchen Funktion die gleiche Hilfe zu finden, kommt nix...
Ist wahrscheinlich so ne Art natürliche Selektion, die MS da pflegt.
Hatte bisher leider noch keine Zeit, die ganzen Eigenschaften etc. zusammen zu stellen, die ich bisher gefunden habe, kommt aber.
Gruß
Joe