Bijlage controleren

Status
Niet open voor verdere reacties.

reneemettrie

Terugkerende gebruiker
Lid geworden
1 aug 2006
Berichten
1.233
Hoe kun je in Access (via VBA) controleren of er bij een record iets staat in een veld van het type attachment?
Isnull(veldnaam) levert altijd FALSE op, of er nu wel of niets instaat?
 
Doe jezelf en lol en gebruik dat type veld NOOIT. Bijlagen los opslaan en met tekstvelden verwijzen. Is in mijn ogen de enige juiste optie.
 
Wat is de reden voor dit advies?
Ik vind dat me met bijlagen veel minder problemen hebt voor het visualiseren van bv een jpg bestand.
En als je ze apart opslaat zitten ze toch niet in je DB, zodat ze niet zichtbaar zijn op een andere PC?
 
Je eerste argument snijdt geen hout; ik heb nooit problemen met het tonen van afbeeldingen op formulieren en rapporten. Dat gaat net zo snel en net zo goed. Het belangrijkste voordeel: geen gezeur (jij had deze vraag ander nooit hoef stellen) en de db blijft vele malen kleiner. En dat laatste vind ik best een belangrijk argument. Ik sla de afbeeldingen zelf meestal op in een map die relatief is aan die van de db. Bij verspreiden van de db neem je dan ook de map met de plaatjes mee. Staat de backend op een netwerk, dan is er uiteraard geen probleem, want dan zitten de afbeeldingen toch al niet in de frontend.
 
Sinds de laatste versies (ik denk vanaf 2007) heb ik wel problemen met JPG figuren. Met copy-paste zijn ze zichtbaar, maar niet via Invoegen.
Nooit echt begrepen hoe dat komt.
Het gaat hier maar om enkele records. Ik vraag bij clubleden gegevens (ingewikkeld om over te typen) op via een Excel werkblad die ik dan later gewoon plak in Access, maar sommige mensen sturen me een JPG met manueel ingevulde gegevens :(.
De DB wordt gedeeld via Google Drive, de anderen kunnen die enkel downloaden, dus in zelfde map als DB gaat hier denk ik niet op?
Om te zien of er al dan niet een attachment is (dan moet dat veld inkleuren om de aandacht erop te vestigen) gebruik ik nu de AttachmentCount eigenschap.
 
Als de db in de map Database zit, en de afbeeldingen in Database\Afbeeldingen zie ik het probleem niet. Excel gegevens moet je importeren, niet copy/paste. Als ik het zo lees, valt er nog wel wat te verbeteren aan je proces. Al was het maar een gebruikersinstructie dat mensen het juiste format aanleveren. Overtypen? No way, dan ben jíj verantwoordelijk voor eventuele fouten, niet degene die de gegevens aanlevert. Ik zou daar keihard in zijn, en de plaatjes terugsturen.
 
Ik moet die gegevens wel eerst controleren, dus sowieso het Excel bestand openen. Er zijn altijd pipo's die niet weten waarvoor een keuzelijst met validaties dient (of ze kopiëren gegevens van elders en plakken die zodat de validatie wegvalt). Of die datums op zijn Amerikaans invullen.
De copy/paste gaat in dit geval sneller dan importeren (ik sla die Excel bestanden ook niet op, zijn bijlages in een mail). Importeren is ook niet evident, het zijn vaccinatiegegevens voor honden, er is geen sleutelveld, er vallen records in de bestaande DB weg, er worden wijzigingen en toevoegingen aangebracht. Ik heb de tabellen (niet de rest) geërfd van iemand anders en mag de tabelstructuur niet wijzigen. En als leden een koppel vormen moet ik die honden voor hen beiden toevoegen.
En er zijn er ook die niet (willen) snappen dat je met een JPG niks bent. Maar je moet vriendelijk blijven... Ten slotte zijn er ook nog mensen die geen Excel hebben...
Overtypen, idd no way...
En ja, er valt nog aan te sleutelen. Dus het zal niet mijn laatste vraag hier zijn :)
 
Ik snap je proces nog niet helemaal, want waarom krijgen de leden dan de hel db? Zelf zou ik veel eerder met een Word invulformulier werken dat ze dan mailen. Zo'n standaard invul formulier kun je prima met VBA uitlezen vanuit de mail en in je db inlezen. Overigens (je had nog een antwoord op je oorspronkelijke vraag te goed): volgens mij test je het bijlage veld verkeerd. Om te beginnen: gebruik niet IsNull([Veld] maar [Veld] Is Null. Tweede foutje: je moet niet het veld evalueren, maar de waarde. Dus:
Code:
 [Bijlage].Value Is Null
 
De gewone leden hebben geen toegang tot de DB, enkel 2 andere bestuursleden.
Ik zie eerlijk gezegd het voordeel van een Word formulier niet. Wie geen Excel heeft zal trouwens ook geen Word hebben. In Word kan je geen functies toevoegen zoals in Excel (in dit geval een volgnummer).
Het gaan om honden van leden. Sommige hebben er 1, andere 20 (echt waar, gaat om sledehonden). Dat is veel gemakkelijker in een Excel tabel (via Insert Table) dan via een Word formulier.
De honden zijn gerelateerd aan een lidnummer maar nieuwe leden kennen dat nog niet op het moment dat ze hun gegevens doorgeven. Echt waar, copy-paste in een subformulier van de ledentabel is echt het handigste als het excelbestand toch ter controle moet geopend worden. Het hoeft niet allemaal persé via VBA te gaan :)

ivm isnull: isnull(veldnaam) werkt wel met een tekstveld. Het veld bijlage heeft echter geen value eigenschap. Wel een attachmentcount eigenschap.
bijlage.JPG
 
ivm isnull: isnull(veldnaam) werkt wel met een tekstveld.
Dat mag zo zijn, maar die opmerking is in dit kader uiteraard totaal niet relevant. Ik had al gezegd dat ik nooit bijlagevelden gebruik, dus ik deed maar een voorzetje van de richting waarin je het moet zoeken. Als je in de Eigenschappen van een bijlageveld kijkt, kom je daar dan wel uit. Probeer dit maar eens:
Code:
    With Me.Bijlage
        For i = 0 To .AttachmentCount
            MsgBox .FileName(i) & vbLf & .FileType(i)
        Next i
    End With
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan