A.D.TEJPAL
adtp at airtelbroadband.in
Mon Nov 12 13:19:55 CST 2007
You are most welcome Dan!
A.D.Tejpal
------------
----- Original Message -----
From: Dan Waters
To: 'Access Developers discussion and problem solving'
Sent: Tuesday, November 13, 2007 00:04
Subject: Re: [AccessD] Insert Into with Null Fields
Hello A.D.
This is absolutely clever!
Thanks!
Dan
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of A.D.TEJPAL
Sent: Monday, November 12, 2007 12:06 PM
To: Access Developers discussion and problem solving
Cc: A.D.TEJPAL
Subject: Re: [AccessD] Insert Into with Null Fields
Dan,
As an interesting alternative with significant advantages, VALUES clause
can be replaced by SELECT clause. Sample code in form's module, as given at
(A) below, demonstrates this approach. If it happens to be a subform, the
code given at (B) below would be applicable.
With this technique, all your problems should stand resolved. Some of
the advantages inherent in this method are:
1 - While building the SQL string, you don't have to worry about data
type.
2 - If the source text box is blank, Null value gets inserted in the
destination field (Required property set to No).
3 - If there are any embedded quotes (whether single, double or various
combinations of these) in the contents of source text box, the same get
faithfully transferred to destination field without needing any special
treatment. If such a task were to be implemented via VALUES clause, tedious
prior fixing of such embedded quotes would have been necessary.
Note - As form based parameters are involved, DoCmd.RunSQL method has
been used instead of CurrentDb.Execute.
Best wishes,
A.D.Tejpal
------------
A - Code in independent form's module
F_Main is the name of this form. TxtA, TxtB and
TxtC are text boxes whose values are to be appended
to fields A, B & C respectively in table T_Main.
(T_Dummy is a single field single record table).
'=====================================
Private Sub CmdAppend_Click()
Dim Qst As String
Qst = "INSERT INTO T_Main (A, B, C) " & _
"SELECT Forms!F_Main!TxtA, " & _
"Forms!F_Main!TxtB, " & _
"Forms!F_Main!TxtC FROM T_Dummy;"
DoCmd.SetWarnings False
DoCmd.RunSQL Qst
DoCmd.SetWarnings True
End Sub
'=====================================
B - Code in subform's module
F_Main is the name of parent form. SF_Sub is the
name of control serving as container for the subform.
Txt1, Txt2 and Txt3 are text boxes on the subform
whose values are to be appended to fields A, B & C
respectively in table T_Main. (T_Dummy is a single
field single record table).
'=====================================
Private Sub CmdAppend_Click()
Dim Qst As String
Qst = "INSERT INTO T_Main (A, B, C) " & _
"SELECT Forms!F_Main!SF_Sub!Txt1, " & _
"Forms!F_Main!SF_Sub!Txt2, " & _
"Forms!F_Main!SF_Sub!Txt3 FROM T_Dummy;"
DoCmd.SetWarnings False
DoCmd.RunSQL Qst
DoCmd.SetWarnings True
End Sub
'=====================================
----- Original Message -----
From: Dan Waters
To: 'Access Developers discussion and problem solving'
Sent: Monday, November 12, 2007 01:40
Subject: Re: [AccessD] Insert Into with Null Fields
Hi Susan,
If IsNull(txtA) then
Stg = "INSERT INTO tblMain ( B, C )" _
& " VALUES ('" & txtB & "', '" & txtC & "')"
Else
Stg = "INSERT INTO tblMain ( A, B, C )" _
& " VALUES ('" & txtA & "', '" & txtB & "', '" & txtC & "')"
End If
Trying to insert a Null value creates an error.
Dan
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins
Sent: Sunday, November 11, 2007 1:49 PM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Insert Into with Null Fields
> Sometimes when I write an INSERT INTO string, I have to take into
account
> that a text box or memo field might be null. If there is one
possibility
> of a Null, I have to write and choose from 2 different strings, if there
are
> two possibilities of Null fields, then I have to write and choose from 4
> different strings, and so on.
>
> Is there a way out of this?
=========I don't understand the need for mutliple statements. Can you
provide a simple example?
Susan H.