Allow null inleesbaar?

Status
Niet open voor verdere reacties.

sanders1969

Gebruiker
Lid geworden
29 dec 2018
Berichten
243
Ik werk met een SQL server database en o.a. de bit velden heb ik ingesteld dat deze velden een waarde moet hebben.
Ik heb een oplossing geschreven welke de controls binnen de formulier inleest en de waarde ophaalt en plaatst in een recordset.
Alleen als de gebruiker per ongeluk gekozen heb om de control leeg te maken zodat het bij het betreffende veld vastlopen.
De beste oplossing welke het minst tijd kost is wanneer ik achter kan komen of betreffende veld verplicht is om een waarde te hebben.
Mijn vraag is dat kan je in onderstaande tabledefs opvragen of veld Allow null als eigenschap heeft?

Code:
 intFieldsMax = CurrentDb.TableDefs(strTable).Fields.Count
    For intFields = 1 To intFieldsMax
        strFields(intFields) = CurrentDb.TableDefs(strTable).Fields(intFields - 1).Name
        lngFieldTypes(intFields) = CurrentDb.TableDefs(strTable).Fields(intFields - 1).Type
    Next intFields
 
Thanks, ik werk met DOA, is eenmaal een keuze welke ik tigjaar geleden had gemaakt en heel mijn "autistische" systeem is hierop ingesteld ;-)
Ik heb soortgelijke naslag al gevonden maar kon niet meteen 123 vinden om het via tabledefs op te vragen.
 
ADOX en ADODB zijn meer gericht om met niet-Access tabellen te werken (SQL server, MySQL, MariaDB, ..)
 
Haha klopt alleen is mijn huwelijk met DOA zo stabiel waardoor ik weiger nog naar een andere vrouw te kijken ;-)
 
Een bit veld heeft toch een waarde? Of wil je ook andere velden checken? Of wil je de check op een formulier doen?
 
In een sql tabel kan je wel degelijk een bit veld Allow NULLS = true zetten zodat het een lege waarde accepteert.
 
@OctaFish bit veld heeft uiteraard een waarde alleen ik heb mijn controls in mijn formulier dezelfde naam gegeven als de veldnamen in mijn tabel. Zo kan ik in een loop de recordset vullen. Alleen bepaalde velden moeten een waarde hebben en ik wil zo min mogelijk valideren (handmatig programmeren) dus als het een bitveld is en control in formulier is leeg of geen waarde dan vul ik waarde 0 in anders NULL.
Mede daarom wilde ik weten of ik Allow null kon tackelen in de tabledef.
@NoellaG als je een bit veld in SQL allow null toelaat dan kan je in Access de record niet wijzigen. Heel vaag maar dat probleem kwam ik in 2016 geloof ik tegen vandaar dat ik standaard 0 toeken. Echter als de gebruiker per ongelijk de combobox leeg maak dus geen keuze dan wil ik via de tabledef nalopen of allow null is toegestaan en wanneer het een bit veld is dan waarde 0 toekennen ipv validaties programmeren of in eigenschappen instellen.
 
Niet zo heel vaag; Access kent dat type niet, en derhalve wordt dat veld dan als 'alien' beschouwd en is het ReadOnly. Je kunt alleen velden muteren die in beide databases identiek zijn. een gebruiker die een keuzelijst leegmaakt, kun je heel simpel afvangen met een gebeurtenis op die keuzelijst. Lijkt mij een stuk makkelijker op te lossen dan in TableDefs te gaan grutten.
 
Klopt dat je de gebeurtenis kan pakken echter in bit velden heb je te maken met 1 = ja en 0 = nee en als men de combobox leegmaken, wil controleren of veld een waarde moet hebben, zo ja dan 0 invullen.
Maar goed, er is kennelijk geen kant-en-klare antwoord dus zal er straks even naar kijken.
Iig bedankt voor het meedenken!
 
Nogmaals: het is niet zo moeilijk om te voorkomen dat de keuzelijst wordt leeggemaakt. En dat voorkomt een hoop problemen.
 
Ik begrijp je maar jij weet niet wat ik generiek aan het bouwen ben. Ik heb het kunnen tackelen: blnAllowZero = CurrentDb.TableDefs(strTableName).Fields(i - 1).AllowZeroLength
 
Die eigenschap had ik ook gevonden, maar ik dacht dat dat alleen voor tekstvelden geldt?
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan