Toon posts:

[VB] Access module om meedere bestanden te copyen naar stick

Pagina: 1
Acties:

Verwijderd

Topicstarter
Nu ik eenmaal wat verder ben in access en zijn modules wil ik alleen maar meer maar echt programmeer kennis heb ik niet. Van zoeken, knippen en plakken word ik wat wijzer maar niet veel...

Ik heb voor elkaar om iets naar een drive te kopieeren maar alleen met een fixed drive letter en een specifieke map. Nu zoek ik een module of een aanpassing op de bestaande dat ik zelf kan kiezen waar ik hem wil hebben desnoods de drive letter opgeven via een parameterscherm en dat ie die dan in het onderstaande scripts plakt. (Usb sticks geven nog al eens een andere drive letter aangezien ik heel veel netwerkmappings maak). Heeft iemand een idee op deze bestaande module?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Function LedenbestandOpslaanMemorypen()

Dim bronbestand As String
Dim bestembestand As String


MsgBox "Is er een memorycard of Pen geplaatst:"

On Error GoTo Fout:

bronbestand = "c:\Ledenadministratie\Ledenlijst.dat"  'naam van het bronbestand.
bestembestand = "F:\data backup\Ledenlijst.dat"  ' Naam van het bestembestand.

FileCopy bronbestand, bestembestand ' Bron naar bestemming kopiëren.

Dim bronbestand1 As String
Dim bestembestand1 As String

bronbestand1 = "c:\Ledenadministratie\score.dat"  'naam van het bronbestand.
bestembestand1 = "F:\data backup\score.dat"  ' Naam van het bestembestand.

FileCopy bronbestand1, bestembestand1 ' Bron naar bestemming kopiëren.
MsgBox "De data is opgeslagen in G:\data backup"

GoTo FoutOverslaan:

Fout:

Dim IngR As Long
IngR = MsgBox("Er zit geen (goede) Memorycard of Pen in het USB slot:, of de map data backup is niet aanwezig.", vbDefaultButton1 + 48, "Urgente maar niet kritische Datafout")

FoutOverslaan:
End Function


Alvast bedankt voor het bekijken ervan...

[ Voor 3% gewijzigd door Verwijderd op 08-01-2007 23:27 ]


  • PhysicsRules
  • Registratie: Februari 2002
  • Laatst online: 31-03 07:26

PhysicsRules

Dux: Linux voor Eenden

Zoek eens op FileDialog
Application.Filedialog of zo iets, uit mijn hoofd.

Verwijderd

Topicstarter
Dit is niet echt wat ik zoek...

Het volgende heb ik gevonden maar genereerd ook fouten:
How to display and to use the File dialog box in Microsoft Access

Kortom:
Ik klik op een knop en daarachter zit een programmacode die vraagt welke driveletter moet ik gebruiken
Vervolgens geef ik H op als letter en klik op OK en dat dan het stukje code H op zijn "plek" zet in de code en vervolgens gaat kopieeren.

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
String concatenatie?

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Verwijderd

Je wilt dus een lijstje met alle beschikbare driveletters op een systeem ?

Verwijderd

Topicstarter
Verwijderd schreef op dinsdag 09 januari 2007 @ 10:37:
Je wilt dus een lijstje met alle beschikbare driveletters op een systeem ?
dat zou helemaal ideaal zijn... maar als je een usb pen invoert in XP dan geeft ie al weer welke letter het is dus het is niet noodzakelijk..

[ Voor 20% gewijzigd door Verwijderd op 09-01-2007 10:45 ]


Verwijderd

Verwijderd schreef op dinsdag 09 januari 2007 @ 10:44:
[...]


dat zou helemaal ideaal zijn...
Delphi code, zelf ff omzetten ;) (komt trouwens uit TDriveCombo van Delphi, echter de code is ook te vinden op MSDN, het gaat je vooral om GetLogicalDrives)

Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
procedure TDriveComboBox.BuildList;
var
  DriveNum: Integer;
  DriveChar: Char;
  DriveType: TDriveType;
  DriveBits: set of 0..25;

  procedure AddDrive(const VolName: string; Obj: TObject);
  begin
    Items.AddObject(Format('%s: %s',[DriveChar, VolName]), Obj);
  end;

begin
  { fill list }
  Clear;
  Integer(DriveBits) := GetLogicalDrives;
  for DriveNum := 0 to 25 do
  begin
    if not (DriveNum in DriveBits) then Continue;
    DriveChar := Char(DriveNum + Ord('a'));
    DriveType := TDriveType(GetDriveType(PChar(DriveChar + ':\')));
    if TextCase = tcUpperCase then
      DriveChar := Upcase(DriveChar);

    case DriveType of
      dtFloppy:   Items.AddObject(DriveChar + ':', FloppyBMP);
      dtFixed:    AddDrive(VolumeID(DriveChar), FixedBMP);
      dtNetwork:  AddDrive(NetworkVolume(DriveChar), NetworkBMP);
      dtCDROM:    AddDrive(VolumeID(DriveChar), CDROMBMP);
      dtRAM:      AddDrive(VolumeID(DriveChar), RAMBMP);
    end;
  end;
end;


MSDN: GetDriveType
MSDN: GetLogicalDrives
MSND: GetLogicalDriveStrings

[ Voor 9% gewijzigd door Verwijderd op 09-01-2007 10:50 ]


Verwijderd

Topicstarter
Thanks, Hier ga ik eens mee stoeien

Verwijderd

Verwijderd schreef op dinsdag 09 januari 2007 @ 10:56:
Thanks, Hier ga ik eens mee stoeien
Je zou ook de available drives af kunnen lopen op zoek naar die target folder die je gebruikt (evt, in combinatie met een volume naam).

  • PhysicsRules
  • Registratie: Februari 2002
  • Laatst online: 31-03 07:26

PhysicsRules

Dux: Linux voor Eenden

ik neem aan dat je niet alleen de drive, maar de volledige map wilt kunnen bepalen. Dat is toch heel simpel:

Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Function GetFolder() As String


    Dim F As FileDialog
    Dim result As String
        
    Set F = Application.FileDialog(msoFileDialogFolderPicker)
    
    If F.Show Then
        If F.SelectedItems.Count > 0 Then
            result = F.SelectedItems(1)
        End If
    End If
    
    GetFolder = result
    
End Function

Je reactie hierboven geeft niet aan dat je iets anders wil. Of staat het volledige pad vast en mag er geen subdirectory gekozen worden???

Verwijderd

Topicstarter
Het volledig pad staat vast aangezien er een specifieke backup locatie is
Pagina: 1