Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: peter4400 am August 19, 2024, 10:28:02

Titel: Feldeigenschaft "Eingabe erforderlich" per SQL löschen?
Beitrag von: peter4400 am August 19, 2024, 10:28:02
Hi,
weiß jemand, ob es einen Access (2016) SQL Befehl gibt, um die Feldeinschränkung "Eingabe erforderlich" zu löschen?
Titel: Re: Feldeigenschaft "Eingabe erforderlich" per SQL löschen?
Beitrag von: PhilS am August 19, 2024, 11:03:44
Theoretisch sollte das folgenden funktionieren:
ALTER TABLE tblEineTabelle ALTER COLUMN EineSpalte Varchar(50) NULL;
Praktisch wird das SQL zwar ohne Fehler ausgeführt, aber der NOT NULL Constraint wird nicht entfernt. (Analoges Hinzufügen eines NOT NULL Constraints funktioniert aber!)

Aus meiner Sicht ist dieses Verhalten ein Bug in Access/ACE. Ich habe das gerade an Microsoft gemeldet. 
Erfahrungsgemäß werden SQL-Bugs dieser Art leider mit eher niedriger Priorität behandelt.

Wenn die Funktion für dich wichtig ist, solltest du das Problem ebenfalls an Microsoft melden. Ein Weg der allen Benutzern offen steht ist innerhalb von Access: "Help" - "Feedback" - "Report a problem".
Titel: Re: Feldeigenschaft "Eingabe erforderlich" per SQL löschen?
Beitrag von: peter4400 am August 19, 2024, 11:26:19
danke, dann war ich immerhin nicht zu blöd, ich hatte schon alle möglichen Varianten ausprobiert die Google ausgespuckt hat, es gibt wohl auch "DROP CONSTRAINT", aber da sagt er dann "CHECK Beschränkung nicht vorhanden"

PS: Euer captcha ist immer der Horror, brauche selten so viele anläufe...
Titel: Re: Feldeigenschaft "Eingabe erforderlich" per SQL löschen?
Beitrag von: MzKlMu am August 19, 2024, 11:33:19
Hallo,
ZitatPS: Euer captcha ist immer der Horror, brauche selten so viele anläufe...
Das ist dem z.Zt. erhöhten Spam Aufkommen geschuldet.
Wenn Du genügend Beiträge hast (5 glaube ich) hört das auf.
Titel: Re: Feldeigenschaft "Eingabe erforderlich" per SQL löschen?
Beitrag von: PhilS am August 19, 2024, 12:35:28
Zitat von: peter4400 am August 19, 2024, 11:26:19es gibt wohl auch "DROP CONSTRAINT"
Richtig, aber das funktioniert nur bei benannten Contstraints wie CHECK oder FOREIGN KEY.
Ein NOT NULL Constraint ist eine Eigenschaft der Spalte und hat keinen Namen.
Titel: Re: Feldeigenschaft "Eingabe erforderlich" per SQL löschen?
Beitrag von: ebs17 am August 19, 2024, 12:43:11
Wenn es nicht unbedingt SQL (DDL) sein muss: Über DAO bzw. ADOX kann man gleichwertige Anweisungen erstellen und man kommt auch an Feldeigenschaften ran.
Als Einstieg: Strukturänderungen an der Datenbank (https://www.vbarchiv.net/workshops/details.php?id=83-strukturaenderungen-an-der)

With db.TableDefs("tblXY").Fields("fldabc")
   If .Required Then .Required = False
End With
Zum Prüfen (Fehlervermeidung z.B. wegen mehrfachen Ausführens) stellt DDL keine Methoden bereit. Daher muss man sowieso auf VBA zurückgreifen. Insofern muss man für Strukturänderungen generell breiter in den verwendeten Methoden aufgestellt sein.