App permissions say Voice Recorder can modify contents of SD card but VR won’t let me record to it

enter image description here

Therefore, when I try to set the recording location to somewhere on the SD card, I’d expect to be allowed. And yet:

enter image description here

I tried the bare 9016-4EF8 folder, the Android folder in it, the data folder in there, and the com.peace.SilentCamera folder, same result. Moreover, if I try to create a new folder on the card with VR, it seems to do it fine, yet the folder isn’t created. What do I do about this?

2013 Workflow not recognizing conditions and only updating first record

I have a very weird situation where I have three conditions that need to be met before the workflow should update another list with matching fields. The workflow fires but is updating only the first item in the list that doesn’t match the conditions.

  1. If Segment = CurrentItem:Segment
  2. If Modality = CurrentItem:Modality
  3. If KPI = CurrentItem:KPI

Update Target and Update Actual.

It is only updating the first record and not even recognizing the conditions.

I am not able to get 2010 Workflows to even show an change.. I think there is still a bug with Microsoft.

I would appreciate any help.


MS Access – #DELETED when adding a record

I’m using an MS Access 2010 .accdb database connected to a SQL Server 2016 database. My tables and views from SQL are managed as linked tables in MS Access. I’m using a DSNless connection with the SQL Server Native Client 11.0 driver (don’t know if this matters or not).

I have a view/search form that enables users to view records in the database. The form has an Edit-this-Record button and an Add-New-Record button.

I have an edit/create form which uses an updateable SQL Server query. This form has a number of mandatory combobox fields and one combobox field which is optional. The form also has a number of other fields – text and date.

The code of the Add-New-Record button on the view/search form is as follows;

DoCmd.OpenForm "Application Edit - Template", acNormal, "", "", acAdd, acDialog 

The edit/create form has a Save-And-Close button with the following code;

Private Sub btnSaveClose_Click() On Error GoTo btnSaveClose_Click_Err  ' Save the edits to the form i.e. the main form 'DoCmd.RunCommand acCmdSaveRecord  If Me.Dirty Then     Me.Dirty = False End If  'Close the form  DoCmd.Close acForm, "Application Edit - Template"  btnSaveClose_Click_Exit: Exit Sub  btnSaveClose_Click_Err: MsgBox Error$   Resume btnSaveClose_Click_Exit  End Sub 

In order to display the newly created record in view/search form the following code has been added to the After_Update event of the edit/create form.

Private Sub Form_AfterUpdate() Dim rst As DAO.Recordset  'Refresh the record to get the latest data that has been saved 'note that this is primarily to refresh the record details 'i.e. last updated by and Last update date time.  Me.Refresh  'If it's a new record... If boolNewRecord Then     'Refresh the browse form so that the newly saved record is in the recordset     'We set boolBypassFormCurrent = True so we can bypass the redundant     'calls to the Form_Current event on the view/search form      boolBypassFormCurrent = True     [Forms]![Application Browse - Template].Requery      'Navigate the browse form to the newly saved record     Set rst = Forms("Application Browse - Template").RecordsetClone     With rst         .FindFirst "[DB_Key]  = " & Me.txtDBKey  <=== Failure Here!         If Not .NoMatch Then             Forms("Application Browse - Template").Bookmark = .Bookmark         End If     End With     Set rst = Nothing End If boolNewRecord = False boolBypassFormCurrent = False  btnSaveClose.Enabled = False  End Sub 

Once the edit/create form is displayed, if the user supplies values for all comboboxes, including the optional one, and saves the record, everything works as desired (the record is saved, the view/search form is updated to display the new record, and the edit/create form is closed). If the the optional combobox is left blank and the record is saved, everything works as desired. If a value is initially supplied for the optional combobox and then, before saving, the optional value is cleared and then the record is saved, the following error is thrown;

Run-time error: ‘3077’ Syntax error (missing operator) in expression.

The debugger stops at the line;

.FindFirst "[DB_Key]  = " & Me.txtDBKey 

In the form, all fields which are not comboboxes display the value – #Deleted

Typing ?Me.txtDBKey in the immediate window reveals that its value is an empty string i.e. blank (not null).

I believe that because Me.txtDBKey is blank that the code is effectively being interpreted as;

rst.FindFirst [DB_Key] = 

Which would explain the error message.

When the debugger is terminated and the edit/create form is closed – returning control to the view/search form, the record that the user was attempting to add is displayed!

It’s as though the saved record somehow flies away from the edit/create form when the record is saved – before the After_Update event, only in the case when the optional combobox is set and then unset.

Can anyone explain this very unfriendly behavior? Anyone have any ideas for eliminating it?

It’s worth noting that if the user edits an existing record (choses the Edit-this-Record button on the view/search form) and removes the value from the optional combobox and saves the record everything works as desired.

I’ve done considerable searching on this error and have not been able to find anything that matches my problem. The table underneath the SQL view has an integer primary key and a RowVersion column which are both included in the view. MS Access detects the primary key and also correctly identifies the RowVersion column.

Thank you in advance for your assistance with this very vexing problem.

Phone Call Recording Apps Only Record One Side Of The Conversation

I have a Sony XA1 running Android 8 and it doesn’t matter which phone call recorder I install, it only records one side of the conversation either me or the caller. All the apps do the same on my HTC Desire too

I’m not sure if it is the app at fault as they all seem to do the samething and this didn’t start happening until I updated the android version towards the end of last year.

Does anyone know of a solution to this issue?


How to specify this IPv6 in SPF record?

My host says my IPv6 is 2a01:4f8:1c1c:3847::/64 and gmail says spf verification failed for record 2a01:4f8:1c1c:3847:0:0:0:1 Because of DNS propagation time, it is kind of hard to make tests.

What is the correct way to specify this IPv6 in SPF record ? And can I use a wider range there ? To make sure it would include :1 and :2, etc

Gmail fails with all these, so not sure which one is correct:

ip6:2a01:4f8:1c1c:3847 ip6:2a01:4f8:1c1c:3847:0:0:0:1 ip6:2a01:4f8:1c1c:3847::/64 

Is it better to use lambda functions or boolean variables to record state

I have heard some people claiming that boolean state variables are generally bad and should be avoided when possible. Apparently in many cases it is possible to put state into lambda functions, instead of using booleans. An example to this approach is a conceptual implementation of C#’s Lazy. Lazy<T> gets a function-like object that constructs T the first time Get() is called. Subsequent calls to Get() return the same T object over and over again.

For example, a trivial implementation of Lazy, which uses bool can be found at this SO answer. Here is a simplified (thread unsafe) version:

class Lazy<T> {     private readonly Func<T> createValue;     private bool isValueCreated;     private T value;      T Get()     {        if (!isValueCreated)        {            value = createValue();            isValueCreated = true;        }        return value;     }      public Lazy(Func<T> createValue)     {         this.createValue = createValue;     }     } 

An alternative is to get rid of bool and use lambda functions as a way to store state:

class Lazy<T> {      private Func<T> valueGetter;      public Lazy(Func<T> createValue)     {         getValue = () =>         {             T value = createValue();             valueGetter = () => value;             return value;         };     }     public T Get() { return valueGetter(); } } 

I find both variants similarly readable, but the second variant can be too surprising to some programmers, even though the second is shorter. Due to the surprise factor I like the second variant less. The same can also be done with C++:

template <class T> class Lazy {   public:     template <class U>     Lazy(U createValue)     {         valueGetter = [this, createValue]() {             T value = createValue();             valueGetter = [value] { return value; } ;             return value;         };     }     T get() { return valueGetter(); }   private:      std::function<T()> valueGetter; }; 

I have never seen anybody suggest the above, so I assume that it is less fashionable to use this construct in C++.

I find the above lambdas more appealing in a “neat trick” sort of way, but not in a “work with other people” mentality. Should booleans be avoided when lambdas can be used like that? Is using lambdas, like that, considered a good design? Have I been programming C and C++98 for too long, and have become tainted by the mentality of those languages for preferring the boolean?