From your code
Convert.ToInt16(dataGridView1.Rows[i].Cells["QID"].Value)
i can guess your QID
is an integer whereas you are passing it as a string. You dont need single quotes around it.
string sql = "DELETE FROM Questions WHERE QID=" + j ;
should be good.
Edit:
Although this should work for you but this is not a recommended practice as you are vulnerable to SQLInjection
. You should use parameterised query to run any script against your database. e.g.
using(OleDbConnection conn = new System.Data.OleDb.OleDbConnection(connString))
{
conn.Open();
string query= "DELETE FROM Questions WHERE QID = @pID";
OleDbCommand comamnd = new OleDbCommand(query, conn);
comamnd.Parameters.Add("@pID",OleDbType.Integer).Value = j;
comamnd.CommandType = CommandType.Text;
command.ExecuteNonQuery();
conn.Close();
}