VBA-Vraagje: Hoe schrijf ik iets weg in een tabel?

Pagina: 1
Acties:

  • Case
  • Registratie: Oktober 2000
  • Laatst online: 09-05 07:01
Ik heb een stuk macro-code in Access. De code brengt met DDE een aantal wijzigingen aan in een Word-document. Dat gaat allemaal goed. :)
Nu wil ik alleen in een tabel bijhouden wanneer de laatste wijzigingen zijn gemaakt. Ik weet alleen niet hoe. Zodra de macro dus gestart wordt moet de huidige systeemdatum weggeschreven worden naar een veld in een tabel. Iemand een suggestie? Ik kan er ff niet opkomen :(

alvast bedankt,
Case

Mijn Firewizzie


  • TheMrH
  • Registratie: April 2000
  • Laatst online: 14:07
Op dinsdag 09 januari 2001 15:23 schreef Case het volgende:
Ik heb een stuk macro-code in Access. De code brengt met DDE een aantal wijzigingen aan in een Word-document. Dat gaat allemaal goed. :)
Nu wil ik alleen in een tabel bijhouden wanneer de laatste wijzigingen zijn gemaakt. Ik weet alleen niet hoe. Zodra de macro dus gestart wordt moet de huidige systeemdatum weggeschreven worden naar een veld in een tabel. Iemand een suggestie? Ik kan er ff niet opkomen :(

alvast bedankt,
Case
Ten eerste zou ik het dus absoluut niet met DDE doen. Ze zouden er eigelijk stickers, buttons en t-shirts van moeten maken met de kreet: DDE IS NEE!!!
Je kan veeeeeel beter de object library gebruiken van het betreffende office programma, in jouw geval word. Maak hiervoor een reference aan (onder project->references) naar de 'Microsoft Word 8.0 Object Library' (in het geval van Word'97). In de Msdn staan verder wel voorbeelden hoe die objecten te gebruiken.

Probleem 2: Je kan een INSERT uitvoeren op je table; dus
code:
1
INSERT INTO tabel (kolomnaamvandatumveld) VALUES (date())

Dit voer je uit dmv een execute commando bv
code:
1
Currentdb.execute strSQL

waarbij strSQL je SQL commando is, zie boven.

Als je Office 2000 gebruikt kan je het allemaal met ADO doen; werkt wat meer sophisticated dan de DAO uit Access'97 en eerder.

Nogmaals alles staat in de Msdn library, evt online bij msdn.microsoft.com

The box said 'requires Windows 95 or better', so I installed Linux...


  • Case
  • Registratie: Oktober 2000
  • Laatst online: 09-05 07:01
Hee, TheMrH bedankt voor je reactie, dat was inderdaad wat ik bedoelde, kon er alleen niet meer opkomen.
Zou je eens uit kunnen leggen WAAROM DDE niet aan te raden is?
Ik heb voor deze oplossing gekozen omdat ik alleen wat gegevens automatisch naar Word moet zenden vanuit Access. Het overgrote gedeelte van de macrocode wordt namelijk in Word uitgevoerd, en Access gebruik ik alleen om de data aan te leveren aan de macrocode in Word. Meer functionaliteit heb ik niet nodig.
Bedankt!

Mijn Firewizzie


  • TheMrH
  • Registratie: April 2000
  • Laatst online: 14:07
Ik ben werkzaam in de industrieele automatisering waar robuust een must is. We hebben een applicatie gehad die via DDE communiceerde met een andere app. Soms werden er wel berichten gestuurd, maar die kwamen helemaal niet aan; zeker was dat ze verstuurd werden, maar dat ze niet aankwamen bij de app. Deze berichten verdwenen dus ergens in de grote windoos.
Tevens is het een behoorlijk verouderde manier van gegevens uitwisselen: er zijn veel betere en vooral robuustere systemen voor gegevensuitwisseling gekomen.

Voor het gebruiken van een Excel bestand in een VB progrmamma gebruik ik de volgende code:
code:
1
2
3
4
Set objXL = CreateObject("Excel.Application")
Set objWorkbook = objXL.Workbooks.Add
Set objWorksheet = objWorkbook.Sheets(1)
objWorksheet.cells(intRow,intCol).value = strWaarde

Dit is een samenraapsel van code..., maar ik hoop dat je er iets van begrijpt.
Kijk anders even hier voo meer info: gathering.tweakers.net/showtopic/99167

The box said 'requires Windows 95 or better', so I installed Linux...


  • Case
  • Registratie: Oktober 2000
  • Laatst online: 09-05 07:01
Bedankt voor je uitleg, helaas loopt mijn stage (en het project waar ik mee bezig ben) bijna af. Dus kan ik niet echt meer mijn code omgooien. Bij nieuwe projectjes zal ik het eens op jouw manier proberen. Bedankt!

Mijn Firewizzie