1 2 3 4 5 6 7 8 9 | Private Sub CheckFile() If LCase(Dir("data.mdb") = "data.mdb" Then 'the file is present Exit Sub Else 'the file is not present 'code to create file here End If End Sub |
1 | ChDir (directory.Value) |
Met ChDrivequote:Op woensdag 27 juli 2005 14:40 schreef daReaper het volgende:
ha, ik heb ook een mooie vraag
ik heb (VBA, overigens) een input boxje waar je een dir in kan vullen.
Met
[ code verwijderd ]
switch ik naar de ingevulde directory, echter, dit houdt geen rekening met eventuele schijfwisseling... Weet iemand hoe ik dit beter kan doen?
Ok, bedankt voor de uitleg. Ik zal het straks proberen als ik op de andere computer zit.quote:Op woensdag 27 juli 2005 14:38 schreef Xsysstar het volgende:
Nee, u moet het FileSystemObject gebruiken dat geleverd wordt bij het Microsoft Scripting Runtime (Reference zetten).
Public FSO as FileSystemObject
Module:
dim bExists as boolean
bExists = fso.FileExists("data.mdb")
enz.
Aanmaken van een database bestand kan, geloof ik, met Microsoft DAO (= niet ADO, heeft wel raakvlak). Let erop dat als u zowel ADO als DAO gebruikt, u al uw definities volledig defineert, vanwege de dubbele klassenamen.
dim db as ADO.Database
en niet:
dim db as Database
Ja maar doe eens mooi functietje ofzoquote:
Nou, het mooie functietjequote:Op woensdag 27 juli 2005 15:29 schreef daReaper het volgende:
[..]
Ja maar doe eens mooi functietje ofzo![]()
En hoe dit dat met netwerk directory's? ( //share/bla )
1 2 | ChDrive myDir ChDir myDir |
Het wil nog niet helemaal lukken, ik heb het volgende gedaan.quote:Op woensdag 27 juli 2005 14:38 schreef Xsysstar het volgende:
Nee, u moet het FileSystemObject gebruiken dat geleverd wordt bij het Microsoft Scripting Runtime (Reference zetten).
Public FSO as FileSystemObject
Module:
dim bExists as boolean
bExists = fso.FileExists("data.mdb")
enz.
Aanmaken van een database bestand kan, geloof ik, met Microsoft DAO (= niet ADO, heeft wel raakvlak). Let erop dat als u zowel ADO als DAO gebruikt, u al uw definities volledig defineert, vanwege de dubbele klassenamen.
dim db as ADO.Database
en niet:
dim db as Database
1 2 3 | Public FSO As FileSystemObject Dim bExists As Boolean bExists = FSO.FileExists("data.mdb") |
1 2 3 4 | Private Sub Form_Load() If bExists = False Then ... ... |
1. Referencequote:Op donderdag 28 juli 2005 11:43 schreef Xsysstar het volgende:
Dat is mijn fout; ik haal module en sub door elkaar. Spijt me.
De FileSystemObject-definitie moet in de kop van de module (dat was goed).
In een sub kunt u met dat FSO-object vele functies aanroepen, waaronder FileExists. Oftewel: de bExists-definitie en het vullen ervan moet ook in Form_load.
1 | Public FSO As FileSystemObject |
1 2 3 4 5 6 | Private Sub Form_Load() Dim bExists As Boolean bExists = FSO.FileExists("data.mdb") If bExists = False Then ... ... |
Dat kan in principe overal (het FileSystemObject kan ook in een gewone sub gedeclareerd worden), maar afhankelijk van het soort referentie kan het verstandig zijn om één enkele instantie te maken van die referentie.quote:Op donderdag 28 juli 2005 11:49 schreef JanMichiel het volgende:
Is het overigens noodzakelijk om de reference (object?) in een module te declareren? Of kan dat ook gewoon in een form?
1 2 3 4 5 6 7 8 9 10 | SendString = "" For i = 0 To 500 For a = 0 To 500 SendString = SendString & inBase(i, a) & "#" Next a Next i frmConnection.wnsdata.SendData "base#" & SendString |
1 2 3 4 5 6 7 8 | Public Enum eBuildingType ebtHeadquarters = 0 ebtTaxOffice = 1 End enum 'De nummers mogen weggelaten worden (de '=' moet dan ook weg) Public BuildingType as eBuildingType Public X as integer Public Y as integer |
1 | Public InBase as Collection |
1 2 | +Sub Init+ Set InBase = new Collection |
1 2 3 4 5 6 7 8 9 | +Function GiveBuildings+ dim b as clsBuilding, s as string s = "#" for each b in InBase s = cstr(b.BuildingType) & "#" & cstr(b.X) & "#" & cstr(b.Y) & "#" next 'Hier kunt u nu doen wat u wilt; ik doe even debug.print s. debug.print s |
1 | AddRecord "INSERT INTO worldinfo (worldstring) VALUES ('" & convertstring & "')" & "WHERE username = '" & tempUsername & "'" |
Echter, dit is gewoon een iets aangepaste query die al werkte..quote:Er ontbreekt een puntkomma (;) aan het einde van de SQL instructie
Volgens mij moet er ook nog iets met het Set command gebeuren in mijn code. Ik ben nog een beetje aan het inlezen over objects, maar elke hulp is meegenomen.quote:Op donderdag 28 juli 2005 11:49 schreef JanMichiel het volgende:
[..]
1. Reference
2. Module:
[ code verwijderd ]
3. Sub:
[ code verwijderd ]
Correct? Ik dacht dat ik dit al geprobeerd had (zonder veel succes), maar zal het straks nog eens proberen.
Is het overigens noodzakelijk om de reference (object?) in een module te declareren? Of kan dat ook gewoon in een form?
De functie addrecord doet:quote:Op donderdag 28 juli 2005 15:54 schreef Xsysstar het volgende:
Hmm, dat lijkt SQL. Ik weet niet hoe de functie AddRecord werkt, maar ik denk dat de oplossing wel weet: achteraan het commando (vóór het laatste aanhalingsteken: AddRecord "Commando(Hier)" ) moet u de puntkomma plaatsen.
Als dit inderdaad niet werkt, misschien moet u een spatie plaatsen tussen het aanhalingsteken en WHERE in het deel [& "WHERE username =].
1 2 3 4 5 | Public Sub AddRecord(query) Dim AdoRec As ADODB.Recordset Set AdoRec = AdoCon.Execute(query) Set AdoRec = Nothing End Sub |
Dat Set = nothing is overbodig; VB doet dat zelf.quote:Op donderdag 28 juli 2005 16:27 schreef LeeHarveyOswald het volgende:
[..]
De functie addrecord doet:
[ code verwijderd ]
Dat met die puntkomma neerzetten heb ik geprobeerd, werkte helaas niet
Zou kunnen; max 255 tekens ofzo?quote:Op donderdag 28 juli 2005 16:30 schreef LeeHarveyOswald het volgende:
Spatie was het ook niet.. zou het kunnen dat de query die ik doorgeef, te lang is?
In LeeHarveyOswalds code kunt u zien hoe het met Dim en Set werkt. Kijkt u anders eens op Google of http://www.vbgroup.nl/Default.aspx?tabid=41. Er zijn vast wel minicursi te vinden.quote:Op donderdag 28 juli 2005 16:27 schreef JanMichiel het volgende:
Ik krijg bij het uitvoeren error code #91. Je kan het wel nalezen in de VB help index waarschijnlijk. Het helpdocument spreekt voor het gebruik van een object over het declareren van het object (gedaan) en het Set command. Maar ik heb momenteel te weinig kennis van objects om te weten het het Set command te gebruiken.
|
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |