veamos... si txtID es una variable e ID es un campo numérico, la SQL debería quedar como no querés que te digamos que quede
(
strSQLCoger2= "Select IMAGEN, ARCHIVO, FECHA From NEWS WHERE ID ="& txtID)
pero definitivamente esto está mal:
strSQLCoger2= "Select IMAGEN, ARCHIVO, FECHA From NEWS WHERE ID = txtID"
Si
txtID es un literal, deberías colocarlo entre apóstrofes. Si es una variable de tipo string, también pero concatenada con la sentencia SQL quedando:
strSQLCoger2= "Select IMAGEN, ARCHIVO, FECHA From NEWS WHERE ID = ' " & txtID & " ' "
de todas formas, me parece que lo mejor es hacer un update de esta manera...
strSQLCoger2= "UPDATE News SET IMAGEN = '" & imgNewsU & "', ARCHIVO = '" & txtNewsU & "', FECHA = '" & txtFecha & "' WHERE ID = " & txtID
MyConn.Execute(strSQLCoger2)